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
파일 보기 프로젝트 열기: nats/castle-1.0.3-mono 1 사용 예제들

공개 메소드들

메소드 설명
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