Mono.MoonlightTypeConverter.ConvertObject C# (CSharp) Метод

ConvertObject() публичный статический Метод

public static ConvertObject ( DependencyProperty dp, object val, Type objectType, bool doToStringConversion ) : object
dp System.Windows.DependencyProperty
val object
objectType System.Type
doToStringConversion bool
Результат object
		public static object ConvertObject (DependencyProperty dp, object val, Type objectType, bool doToStringConversion)
		{
			// Should i return default(T) if property.PropertyType is a valuetype?
			if (val == null)
				return val;
			
			if (dp.PropertyType.IsAssignableFrom (val.GetType ()))
				return val;

			if (dp.PropertyType == typeof (string))
				return doToStringConversion ? val.ToString() : "";
			
			TypeConverter tc = null;
			
			if (dp.IsAttached) {
				tc = Helper.GetConverterFor (GetGetterMethodForAttachedDP (dp, val), dp.PropertyType);
			}
			else {
				PropertyInfo pi = dp.DeclaringType.GetProperty (dp.Name);
				if (pi != null) {
					tc = Helper.GetConverterFor (pi, pi.PropertyType);
					if (tc == null)
						tc = new MoonlightTypeConverter (pi.Name, pi.PropertyType);
				}
			}
			
			if (tc == null)
				tc = new MoonlightTypeConverter (dp.Name, dp.PropertyType);
			
			if (!tc.CanConvertFrom (val.GetType()))
				throw new Exception (string.Format ("type converter {0} can't convert from type {1} to type {2}", tc.GetType(), val.GetType(), dp.PropertyType));

			return tc.ConvertFrom (val);
		}

Same methods

MoonlightTypeConverter::ConvertObject ( PropertyInfo prop, object val, Type objectType ) : object