bool TryConvertCustomType(IReferenceMap referenceMap, object value, bool isOptional, string fullyQualifiedName, out object result) { if (IsReferenceType()) { return(TryConvertClass(referenceMap, value, out result)); } if (_types.GetEnumType(fullyQualifiedName) != null) { return(TryConvertEnum(value, isOptional, fullyQualifiedName, out result)); } result = null; return(false); bool IsReferenceType() { return (_types.GetClassType(fullyQualifiedName) != null || _types.GetInterfaceType(fullyQualifiedName) != null || _types.GetProxyType(fullyQualifiedName) != null); } }