示例#1
0
        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);
        }