public static bool TrySetMember(this IDynamicMetaObjectProvider dynamicProvider, string name, object value) { SetMemberBinder binder = (SetMemberBinder)BinderWrapper.SetMember(name, value.GetType()); var setterSite = CallSite <Func <CallSite, object, object, object> > .Create(new NoThrowSetBinderMember(binder)); object result = setterSite.Target(setterSite, dynamicProvider, value); return(!ReferenceEquals(result, NoThrowExpressionVisitor.ErrorResult)); }
public static bool TrySetMember(this IDynamicMetaObjectProvider dynamicProvider, string name, object value) { ValidationUtils.ArgumentNotNull(dynamicProvider, "dynamicProvider"); SetMemberBinder binder = (SetMemberBinder)BinderWrapper.SetMember(name, typeof(DynamicUtils)); var setterSite = CallSite <Func <CallSite, object, object, object> > .Create(new NoThrowSetBinderMember(binder)); object result = setterSite.Target(setterSite, dynamicProvider, value); return(!ReferenceEquals(result, NoThrowExpressionVisitor.ErrorResult)); }
public static bool TryGetMember(this IDynamicMetaObjectProvider dynamicProvider, string name, out object value) { GetMemberBinder getMemberBinder = (GetMemberBinder)BinderWrapper.GetMember(name, typeof(DynamicUtils)); CallSite <Func <CallSite, object, object> > callSite = CallSite <Func <CallSite, object, object> > .Create(new NoThrowGetBinderMember(getMemberBinder)); object result = callSite.Target(callSite, dynamicProvider); if (!ReferenceEquals(result, NoThrowExpressionVisitor.ErrorResult)) { value = result; return(true); } else { value = null; return(false); } }