public static object ConvertFrom(object target, object value, MemberInfo memberInfo, CultureInfo culture) { ChoGuard.ArgumentNotNull(target, "Target"); ChoGuard.ArgumentNotNull(memberInfo, "MemberInfo"); Type objType = null; if (target is Type) { objType = target as Type; target = null; } else { objType = target.GetType(); } return(ChoConvert.ConvertFrom(target, value, ChoType.GetMemberType(memberInfo), ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), culture)); }
public override bool TrySetMember(SetMemberBinder binder, object value) { MemberInfo memberInfo = ChoTypeMembersCache.GetMemberInfo(_type, binder.Name); if (memberInfo == null) { return(false); } try { //object newConvertedValue = ChoConvert.ConvertFrom(_instance, value, ChoType.GetMemberType(memberInfo), // ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo)); object newConvertedValue = ChoConvert.ConvertFrom(value, memberInfo, _instance); ChoType.SetMemberValue(_instance, memberInfo, newConvertedValue); } catch (ChoFatalApplicationException) { throw; } catch (Exception ex) { Trace.TraceError(ex.ToString()); return(false); } if (!(_instance is INotifyPropertyChanged)) { PropertyChangedEventHandler propertyChanged = PropertyChanged; if (propertyChanged != null) { propertyChanged(this, new PropertyChangedEventArgs(binder.Name)); } } return(true); }
public static object ConvertFrom(object value, MemberInfo memberInfo, object sourceObject = null, CultureInfo culture = null) { ChoGuard.ArgumentNotNull((object)memberInfo, "MemberInfo"); return(ChoConvert.ConvertFrom(value, ChoType.GetMemberType(memberInfo), sourceObject, ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), culture)); }