C# Класс Castle.MonoRail.Views.Brail.ExpandDuckTypedExpressions_WorkaroundForDuplicateVirtualMethods

This is here because we need to overcome a tendecy of Dynamic Proxy to generate virtual override that do not match exactly what the compiler does. This means that when you do GetMethod("Foo") and DP has proxied it, you would get an exception because it would recognize two methods with this name. We recognize when we are trying to invoke something that DP has build and act accordingly. The code is mostly taken fro Boo.Lang.Runtime.RuntimeServices, and modified to understand that when the type is from DP, is should use DeclareOnly
Наследование: Boo.Lang.Compiler.Steps.ExpandDuckTypedExpressions
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
GetProperty ( object target, string name ) : object
GetSlice ( object target, string name, object args ) : object
Invoke ( object target, string name, object args ) : object
SetProperty ( object target, string name, object value ) : object
SetSlice ( object target, string name, object args ) : object

Защищенные методы

Метод Описание
InitializeDuckTypingServices ( ) : void

Приватные методы

Метод Описание
GetArraySlice ( object target, object args ) : object
GetDefaultMemberName ( Type type ) : String
GetGetMethod ( PropertyInfo property ) : MethodInfo
GetMember ( Type type, string name ) : System.Reflection.MemberInfo[]
GetResolvedMethod ( IType type, string name ) : IMethod
GetSetMethod ( PropertyInfo property ) : MethodInfo
GetSlice ( object target, MemberInfo member, object args ) : object
IsGetArraySlice ( object target, object args ) : bool
IsSetArraySlice ( object target, object args ) : bool
MemberNotSupported ( MemberInfo member ) : void
ResolveFlagsToUse ( Type type, BindingFlags flags ) : BindingFlags
SelectSliceMember ( MemberInfo found, object &args, SetOrGet sliceKind ) : MemberInfo
SetArraySlice ( object target, object args ) : object
SetSlice ( object target, MemberInfo member, object args ) : object

Описание методов

GetProperty() публичный статический Метод

public static GetProperty ( object target, string name ) : object
target object
name string
Результат object

GetSlice() публичный статический Метод

public static GetSlice ( object target, string name, object args ) : object
target object
name string
args object
Результат object

InitializeDuckTypingServices() защищенный Метод

protected InitializeDuckTypingServices ( ) : void
Результат void

Invoke() публичный статический Метод

public static Invoke ( object target, string name, object args ) : object
target object
name string
args object
Результат object

SetProperty() публичный статический Метод

public static SetProperty ( object target, string name, object value ) : object
target object
name string
value object
Результат object

SetSlice() публичный статический Метод

public static SetSlice ( object target, string name, object args ) : object
target object
name string
args object
Результат object