public static object ConvertTo(object value, Type targetType, CultureInfo culture = null) { if (value == null) { return(ChoConvert.ConvertTo(value, targetType, value, null, null, culture)); } else { return(ChoConvert.ConvertTo(value, targetType, value, ChoTypeDescriptor.GetTypeConverters(value.GetType()), ChoTypeDescriptor.GetTypeConverterParams(value.GetType()), culture)); } }
public void ReadXml(System.Xml.XmlReader reader) { string text = reader.ReadElementContentAsString(); if (!text.IsNullOrWhiteSpace() && String.Compare(text, "{NULL}", true) != 0 && String.Compare(text, "{NIL}", true) != 0) { Value = (T)ChoConvert.ConvertTo(text.Evaluate(), typeof(T)); } }
internal static NameValueCollection ToPersistableNameValueCollection(object target) { ChoGuard.ArgumentNotNull(target, "Target"); NameValueCollection nameValues = new NameValueCollection(); //Dictionary<string, MemberInfo> configMemberInfos = ChoType.GetMembersDictionary(target.GetType(), typeof(ChoConfigurationPropertyAttribute)); //MemberInfo[] memberInfos = ChoType.GetMembers(target.GetType(), typeof(ChoConfigurationPropertyAttribute)); MemberInfo[] memberInfos = ChoTypeMembersCache.GetAllMemberInfos(target.GetType()); if (memberInfos == null || memberInfos.Length == 0) { return(nameValues); } ChoPropertyInfoAttribute memberInfoAttribute = null; string name = null; foreach (MemberInfo memberInfo in memberInfos) { if (memberInfo.GetCustomAttribute <ChoIgnorePropertyAttribute>() != null) { continue; } object memberValue = ChoType.GetMemberValue(target, memberInfo.Name); memberInfoAttribute = (ChoPropertyInfoAttribute)ChoType.GetMemberAttribute(memberInfo, typeof(ChoPropertyInfoAttribute)); //if (memberInfoAttribute == null) continue; name = ChoType.GetMemberName(memberInfo, memberInfoAttribute); if (target is ChoConfigurableObject && ((ChoConfigurableObject)target).RaiseBeforeConfigurationObjectMemberPersist(memberInfo.Name, name, ref memberValue)) { nameValues.Add(name, memberValue == null ? null : memberValue.ToString()); } else { if (memberInfoAttribute != null && !memberInfoAttribute.Persistable) { continue; } memberValue = ChoType.GetMemberValue(target, memberInfo.Name); nameValues.Add(name, ChoString.ToString(ChoConvert.ConvertTo(target, memberValue, typeof(string), ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), null), String.Empty, String.Empty)); } } return(nameValues); }
public static bool TryConvertTo(object value, Type targetType, CultureInfo culture, out object output) { output = null; try { output = ChoConvert.ConvertTo(value, targetType, culture); return(true); } catch { return(false); } }
public static bool TryConvertTo(object value, MemberInfo memberInfo, Type targetType, object sourceObject, CultureInfo culture, out object output) { output = null; ChoGuard.ArgumentNotNull((object)memberInfo, "MemberInfo"); try { output = ChoConvert.ConvertTo(value, targetType, sourceObject, ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), culture); return(true); } catch { return(false); } }
public static object ConvertTo(object target, object value, MemberInfo memberInfo, Type targetType, 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.ConvertTo(target, value, targetType, ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), culture)); }
private static string GetNFormatMemberValue(object target, MemberInfo memberInfo, bool collectErrMsgs, ChoMemberFormatterAttribute memberFormaterAttribute, ChoMemberItemFormatterAttribute memberItemFormaterAttribute, BindingFlags bindingFlags) { try { string memberText = null; object memberValue = ChoType.GetMemberValue(target, memberInfo); if (memberValue == target) { return(null); } if (memberFormaterAttribute == null) { object[] typeConverters = ChoTypeDescriptor.GetTypeConverters(memberInfo); if (typeConverters != null && typeConverters.Length > 0) { memberText = (string)ChoConvert.ConvertTo(target, memberValue, typeof(string), typeConverters, ChoTypeDescriptor.GetTypeConverterParams(memberInfo), null); return(memberText); } } memberText = ChoFormattableObject.ToString(memberValue, collectErrMsgs, memberFormaterAttribute, memberItemFormaterAttribute, bindingFlags); if (memberText.ContainsMultiLines()) { memberText = Environment.NewLine + memberText.Indent(); } return(memberText); } catch (ChoFatalApplicationException) { throw; } catch (Exception ex) { throw new ChoApplicationException(memberInfo.Name, ex); } }
internal static Dictionary <string, object> ToPersistableDictionaryCollection(ChoBaseConfigurationElement configElement, Type itemType) { ChoGuard.ArgumentNotNull(configElement, "ConfigElement"); object target = configElement.ConfigObject; ChoGuard.ArgumentNotNull(target, "Target"); Dictionary <string, object> dict = new Dictionary <string, object>(); //Dictionary<string, MemberInfo> configMemberInfos = ChoType.GetMembersDictionary(target.GetType(), typeof(ChoConfigurationPropertyAttribute)); //MemberInfo[] memberInfos = ChoType.GetMembers(target.GetType(), typeof(ChoConfigurationPropertyAttribute)); MemberInfo[] memberInfos = ChoTypeMembersCache.GetAllMemberInfos(target.GetType()); if (memberInfos == null || memberInfos.Length == 0) { return(dict); } ChoPropertyInfoAttribute memberInfoAttribute = null; string name = null; foreach (MemberInfo memberInfo in memberInfos) { if (memberInfo.GetCustomAttribute <ChoIgnorePropertyAttribute>() != null) { continue; } object memberValue = ChoType.GetMemberValue(target, memberInfo.Name); memberInfoAttribute = (ChoPropertyInfoAttribute)ChoType.GetMemberAttribute(memberInfo, typeof(ChoPropertyInfoAttribute)); name = ChoType.GetMemberName(memberInfo, memberInfoAttribute); if (target is ChoConfigurableObject && ((ChoConfigurableObject)target).RaiseBeforeConfigurationObjectMemberPersist(memberInfo.Name, name, ref memberValue)) { dict.Add(name, memberValue); } else { if (memberInfoAttribute != null && !memberInfoAttribute.Persistable) { continue; } memberValue = ChoType.GetMemberValue(target, memberInfo.Name); Type memberType = ChoConfigurationMetaDataManager.GetSourceType(configElement, name, memberInfoAttribute); if (memberType == null) { if (itemType == typeof(Object)) { memberType = ChoType.GetMemberType(memberInfo); } else { memberType = itemType; } } dict.Add(name, ChoConvert.ConvertTo(target, memberValue, memberType, ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), null)); } } return(dict); }
public static object ConvertTo(object value, MemberInfo memberInfo, Type targetType, object sourceObject = null, CultureInfo culture = null) { ChoGuard.ArgumentNotNull((object)memberInfo, "MemberInfo"); return(ChoConvert.ConvertTo(value, targetType, sourceObject, ChoTypeDescriptor.GetTypeConverters(memberInfo), ChoTypeDescriptor.GetTypeConverterParams(memberInfo), culture)); }