public static IPropertyValue ToModel(this PropertyValueContract propertyValueContract, IMapperSettings mapperSettings, IMutableMessageList <Message>?messages = null) { Type propertyType = mapperSettings.GetTypeByName(propertyValueContract.Type); string propertyName = propertyValueContract.Name; IProperty property = Property.Create(propertyType, propertyName); var propertyValueResult = mapperSettings.DeserializeValue(propertyType, propertyValueContract.Value); object?value = propertyValueResult.GetValueOrDefault(message => { messages?.Add(message); return(null); }); IPropertyValue propertyValue = PropertyValue.Create(property, value: value, valueSource: propertyValueResult.IsSuccess ? ValueSource.Defined : ValueSource.NotDefined); return(propertyValue); }