public static bool TryBindGetMember(GetMemberBinder binder, DynamicMetaObject instance, out DynamicMetaObject result, bool delayInvocation) { ContractUtils.RequiresNotNull(binder, "binder"); ContractUtils.RequiresNotNull(instance, "instance"); if (TryGetMetaObject(ref instance)) { // // Demand Full Trust to proceed with the binding. // new PermissionSet(PermissionState.Unrestricted).Demand(); var comGetMember = new ComGetMemberBinder(binder, delayInvocation); result = instance.BindGetMember(comGetMember); if (result.Expression.Type.IsValueType) { result = new DynamicMetaObject( Expression.Convert(result.Expression, typeof(object)), result.Restrictions ); } return true; } else { result = null; return false; } }
public static bool TryBindGetMember(GetMemberBinder binder, DynamicMetaObject instance, out DynamicMetaObject result, bool delayInvocation) { ContractUtils.RequiresNotNull(binder, "binder"); ContractUtils.RequiresNotNull(instance, "instance"); if (TryGetMetaObject(ref instance)) { // // Demand Full Trust to proceed with the binding. // new PermissionSet(PermissionState.Unrestricted).Demand(); var comGetMember = new ComGetMemberBinder(binder, delayInvocation); result = instance.BindGetMember(comGetMember); if (result.Expression.Type.IsValueType) { result = new DynamicMetaObject( Expression.Convert(result.Expression, typeof(object)), result.Restrictions ); } return(true); } else { result = null; return(false); } }
public override bool Equals(object obj) { ComGetMemberBinder other = obj as ComGetMemberBinder; return(other != null && _CanReturnCallables == other._CanReturnCallables && _originalBinder.Equals(other._originalBinder)); }
/// <summary> /// Tries to perform binding of the dynamic get member operation. /// </summary> /// <param name="binder">An instance of the <see cref="GetMemberBinder"/> that represents the details of the dynamic operation.</param> /// <param name="instance">The target of the dynamic operation. </param> /// <param name="result">The new <see cref="DynamicMetaObject"/> representing the result of the binding.</param> /// <param name="delayInvocation">true if member evaluation may be delayed.</param> /// <returns>true if operation was bound successfully; otherwise, false.</returns> public static bool TryBindGetMember(GetMemberBinder binder, DynamicMetaObject instance, out DynamicMetaObject result, bool delayInvocation) { if (TryGetMetaObject(ref instance)) { var comGetMember = new ComGetMemberBinder(binder, delayInvocation); result = instance.BindGetMember(comGetMember); return true; } else { result = null; return false; } }
/// <summary> /// Tries to perform binding of the dynamic get member operation. /// </summary> /// <param name="binder">An instance of the <see cref="GetMemberBinder"/> that represents the details of the dynamic operation.</param> /// <param name="instance">The target of the dynamic operation. </param> /// <param name="result">The new <see cref="DynamicMetaObject"/> representing the result of the binding.</param> /// <param name="delayInvocation">true if member evaluation may be delayed.</param> /// <returns>true if operation was bound successfully; otherwise, false.</returns> public static bool TryBindGetMember(GetMemberBinder binder, DynamicMetaObject instance, out DynamicMetaObject result, bool delayInvocation) { ContractUtils.RequiresNotNull(binder, "binder"); ContractUtils.RequiresNotNull(instance, "instance"); if (TryGetMetaObject(ref instance)) { var comGetMember = new ComGetMemberBinder(binder, delayInvocation); result = instance.BindGetMember(comGetMember); if (result.Expression.Type.IsValueType) { result = new DynamicMetaObject( Expression.Convert(result.Expression, typeof(object)), result.Restrictions ); } return true; } else { result = null; return false; } }
/// <summary> /// Tries to perform binding of the dynamic get member operation. /// </summary> /// <param name="binder">An instance of the <see cref="GetMemberBinder"/> that represents the details of the dynamic operation.</param> /// <param name="instance">The target of the dynamic operation. </param> /// <param name="result">The new <see cref="DynamicMetaObject"/> representing the result of the binding.</param> /// <param name="delayInvocation">true if member evaluation may be delayed.</param> /// <returns>true if operation was bound successfully; otherwise, false.</returns> public static bool TryBindGetMember(GetMemberBinder binder, DynamicMetaObject instance, out DynamicMetaObject result, bool delayInvocation) { if (TryGetMetaObject(ref instance)) { var comGetMember = new ComGetMemberBinder(binder, delayInvocation); result = instance.BindGetMember(comGetMember); if (result.Expression.Type.IsValueType) { result = new DynamicMetaObject( Expression.Convert(result.Expression, typeof(object)), result.Restrictions ); } return(true); } else { result = null; return(false); } }