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
Показать файл Открыть проект

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