private object GetValue(XObject mandatory, PropertyCache propertyCache, object value, XElement elm) { var final = mandatory == null ? null : GetValueInternal(propertyCache.Property.PropertyType, value, elm); var attrib = propertyCache.GetAttribute <PropertyParameterAttribute>(); if (attrib != null) { Enum prop; if (ReflectionCacheManager.GetEnumName(typeof(Property)).Cache.NameCache.TryGetValue(attrib.Name, out prop)) { var converter = prop.GetEnumFieldCache().GetAttributes <ValueConverterAttribute>().FirstOrDefault(); if (converter != null) { return(converter.Converter.Deserialize(final)); } } } return(final); }