C# 클래스 IronRuby.Runtime.Calls.RubyMethodGroupBase

Performs method binding for calling CLR methods. Currently this is used for all builtin libary methods and interop calls to CLR methods
상속: IronRuby.Runtime.Calls.RubyMemberInfo
파일 보기 프로젝트 열기: ExpertsInside/IronSP

Private Properties

프로퍼티 타입 설명
BuildCallNoFlow void
BuildSuperCallNoFlow void
GetAssociatedSystemType System.Type
GetMethodOverload Microsoft.Scripting.Actions.Calls.OverloadInfo
GetVisibleOverloads IList
HasBlockParameter bool
IsOverloadSignature bool
ResolveOverload Microsoft.Scripting.Actions.Calls.BindingTarget
SetMethodBasesNoLock Microsoft.Scripting.Actions.Calls.OverloadInfo[]

공개 메소드들

메소드 설명
GetArity ( ) : int
GetMembers ( ) : System.Reflection.MemberInfo[]
RuleControlFlowBuilder ( MetaObjectBuilder metaBuilder, CallArguments args ) : void

Takes current result and wraps it into try-filter(MethodUnwinder)-finally block that ensures correct "break" behavior for library method calls with block given in bfcVariable (BlockParam).

TryBindGenericParameters ( Type typeArguments ) : IronRuby.Runtime.Calls.RubyMemberInfo
TrySelectOverload ( Type parameterTypes ) : IronRuby.Runtime.Calls.RubyMemberInfo

Filters out methods that don't exactly match parameter types except for hidden parameters (RubyContext, RubyScope, site local storage).

보호된 메소드들

메소드 설명
Copy ( OverloadInfo methods ) : IronRuby.Runtime.Calls.RubyMemberInfo
RubyMethodGroupBase ( OverloadInfo methods, RubyMemberFlags flags, RubyModule declaringModule ) : System.Linq.Expressions

비공개 메소드들

메소드 설명
BuildCallNoFlow ( MetaObjectBuilder metaBuilder, CallArguments args, string name, IList overloads, SelfCallConvention callConvention, bool implicitProtocolConversions ) : void

Resolves an library method overload and builds call expression. The resulting expression on meta-builder doesn't handle block control flow yet.

BuildSuperCallNoFlow ( MetaObjectBuilder metaBuilder, CallArguments args, string name, RubyModule declaringModule ) : void
GetAssociatedSystemType ( RubyModule module ) : Type
GetMethodOverload ( Type parameterTypes, IList genericParameterTypes, Type type, string name, BindingFlags bindingFlags ) : OverloadInfo
GetVisibleOverloads ( CallArguments args, IList overloads, bool isSuperCall ) : IList
HasBlockParameter ( OverloadInfo method ) : bool
IsOverloadSignature ( OverloadInfo method, Type parameterTypes ) : bool
ResolveOverload ( MetaObjectBuilder metaBuilder, CallArguments args, string name, IList overloads, SelfCallConvention callConvention, bool implicitProtocolConversions, RubyOverloadResolver &resolver ) : BindingTarget
SetMethodBasesNoLock ( OverloadInfo methods ) : Microsoft.Scripting.Actions.Calls.OverloadInfo[]

메소드 상세

Copy() 보호된 추상적인 메소드

protected abstract Copy ( OverloadInfo methods ) : IronRuby.Runtime.Calls.RubyMemberInfo
methods Microsoft.Scripting.Actions.Calls.OverloadInfo
리턴 IronRuby.Runtime.Calls.RubyMemberInfo

GetArity() 공개 메소드

public GetArity ( ) : int
리턴 int

GetMembers() 공개 메소드

public GetMembers ( ) : System.Reflection.MemberInfo[]
리턴 System.Reflection.MemberInfo[]

RubyMethodGroupBase() 보호된 메소드

protected RubyMethodGroupBase ( OverloadInfo methods, RubyMemberFlags flags, RubyModule declaringModule ) : System.Linq.Expressions
methods Microsoft.Scripting.Actions.Calls.OverloadInfo
flags RubyMemberFlags
declaringModule IronRuby.Builtins.RubyModule
리턴 System.Linq.Expressions

RuleControlFlowBuilder() 공개 정적인 메소드

Takes current result and wraps it into try-filter(MethodUnwinder)-finally block that ensures correct "break" behavior for library method calls with block given in bfcVariable (BlockParam).
public static RuleControlFlowBuilder ( MetaObjectBuilder metaBuilder, CallArguments args ) : void
metaBuilder MetaObjectBuilder
args CallArguments
리턴 void

TryBindGenericParameters() 공개 메소드

public TryBindGenericParameters ( Type typeArguments ) : IronRuby.Runtime.Calls.RubyMemberInfo
typeArguments System.Type
리턴 IronRuby.Runtime.Calls.RubyMemberInfo

TrySelectOverload() 공개 메소드

Filters out methods that don't exactly match parameter types except for hidden parameters (RubyContext, RubyScope, site local storage).
public TrySelectOverload ( Type parameterTypes ) : IronRuby.Runtime.Calls.RubyMemberInfo
parameterTypes System.Type
리턴 IronRuby.Runtime.Calls.RubyMemberInfo