internal static object InternalLateIndexGet(object Instance, object[] Arguments, string[] ArgumentNames, bool ReportErrors, ref OverloadResolution.ResolutionFailure Failure) { Failure = OverloadResolution.ResolutionFailure.None; if (Arguments == null) { Arguments = Symbols.NoArguments; } if (ArgumentNames == null) { ArgumentNames = Symbols.NoArgumentNames; } Symbols.Container BaseReference = new Symbols.Container(Instance); if (BaseReference.IsCOMObject) { return(LateBinding.LateIndexGet(Instance, Arguments, ArgumentNames)); } if (!BaseReference.IsArray) { return(NewLateBinding.CallMethod(BaseReference, "", Arguments, ArgumentNames, Symbols.NoTypeArguments, (bool[])null, BindingFlags.InvokeMethod | BindingFlags.GetProperty, ReportErrors, ref Failure)); } if (ArgumentNames.Length <= 0) { return(BaseReference.GetArrayValue(Arguments)); } Failure = OverloadResolution.ResolutionFailure.InvalidArgument; if (ReportErrors) { throw new ArgumentException(Utils.GetResourceString("Argument_InvalidNamedArgs")); } return((object)null); }
public void LateIndexGet(object obj, object[] args, string[] paramNames, object expected) { Assert.Equal(expected, LateBinding.LateIndexGet(obj, args, paramNames)); }