internal object InvokeMethod(Symbols.Method TargetProcedure, object[] Arguments, bool[] CopyBack, BindingFlags Flags) { object obj3; MethodBase callTarget = NewLateBinding.GetCallTarget(TargetProcedure, Flags); object[] parameters = NewLateBinding.ConstructCallArguments(TargetProcedure, Arguments, Flags); if ((this.m_Instance == null) && !Symbols.IsShared(callTarget)) { throw new NullReferenceException(Utils.GetResourceString("NullReference_InstanceReqToAccessMember1", new string[] { TargetProcedure.ToString() })); } if (Symbols.IsNonPublicRuntimeMember(callTarget)) { throw new MissingMemberException(); } try { obj3 = callTarget.Invoke(this.m_Instance, parameters); } catch (TargetInvocationException exception) { throw exception.InnerException; } OverloadResolution.ReorderArgumentArray(TargetProcedure, parameters, Arguments, CopyBack, Flags); return(obj3); }
internal object GetFieldValue(FieldInfo Field) { if ((this.m_Instance == null) && !Symbols.IsShared(Field)) { throw new NullReferenceException(Utils.GetResourceString("NullReference_InstanceReqToAccessMember1", new string[] { Utils.FieldToString(Field) })); } if (Symbols.IsNonPublicRuntimeMember(Field)) { throw new MissingMemberException(); } return(Field.GetValue(this.m_Instance)); }
internal void SetFieldValue(FieldInfo Field, object Value) { if (Field.IsInitOnly) { throw new MissingMemberException(Utils.GetResourceString("MissingMember_ReadOnlyField2", new string[] { Field.Name, this.VBFriendlyName })); } if ((this.m_Instance == null) && !Symbols.IsShared(Field)) { throw new NullReferenceException(Utils.GetResourceString("NullReference_InstanceReqToAccessMember1", new string[] { Utils.FieldToString(Field) })); } if (Symbols.IsNonPublicRuntimeMember(Field)) { throw new MissingMemberException(); } Field.SetValue(this.m_Instance, Conversions.ChangeType(Value, Field.FieldType)); }