本文整理汇总了C#中IronRuby.Runtime.Calls.RubyMemberInfo.BuildMethodMissingCall方法的典型用法代码示例。如果您正苦于以下问题:C# RubyMemberInfo.BuildMethodMissingCall方法的具体用法?C# RubyMemberInfo.BuildMethodMissingCall怎么用?C# RubyMemberInfo.BuildMethodMissingCall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IronRuby.Runtime.Calls.RubyMemberInfo
的用法示例。
在下文中一共展示了RubyMemberInfo.BuildMethodMissingCall方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildMethodMissingCall
// Returns true if the call was bound (with success or failure), false if fallback should be performed.
internal static bool BuildMethodMissingCall(MetaObjectBuilder/*!*/ metaBuilder, CallArguments/*!*/ args, string/*!*/ methodName,
RubyMemberInfo methodMissing, RubyMethodVisibility incompatibleVisibility, bool isSuperCall, bool defaultFallback) {
switch (BindToKernelMethodMissing(metaBuilder, args, methodName, methodMissing, incompatibleVisibility, isSuperCall)) {
case MethodMissingBinding.Custom:
Debug.Assert(!metaBuilder.Error);
methodMissing.BuildMethodMissingCall(metaBuilder, args, methodName);
return true;
case MethodMissingBinding.Error:
// method_missing is defined in Kernel, error has been reported:
return true;
case MethodMissingBinding.Fallback:
// method_missing is defined in Kernel:
if (defaultFallback) {
metaBuilder.SetError(Methods.MakeMissingMethodError.OpCall(
args.MetaContext.Expression,
AstUtils.Convert(args.TargetExpression, typeof(object)),
Ast.Constant(methodName)
));
return true;
}
return false;
}
throw Assert.Unreachable;
}