示例#1
0
        public static JsonApiDocument Document(string json, Type resultType = null, JsonApiSettings settings = null)
        {
            var serializer = MakeSerializer(resultType, settings);

            // default is to skip resource creation
            if (serializer.Settings.CreateResource == null)
            {
                serializer.Settings.CreateResource = false;
            }

            return(serializer.Document(json));
        }
示例#2
0
        private static JsonApiNetSerializer MakeSerializer(Type resultType, JsonApiSettings settings)
        {
            settings = settings ?? new JsonApiSettings();

            settings.ResultType = settings.ResultType ?? resultType;

            if (settings.TypeResolver == null)
            {
                settings.TypeResolver = new ReflectingTypeResolver(resultType);
            }

            settings.PropertyResolver = settings.PropertyResolver ?? new JsonApiPropertyResolver();

            return(new JsonApiNetSerializer(settings));
        }
示例#3
0
        public static T ResourceFromDocument <T>(
            string json,
            IJsonApiTypeResolver typeResolver         = null,
            IJsonApiPropertyResolver propertyResolver = null)
        {
            var settings = new JsonApiSettings
            {
                CreateResource   = true,
                PropertyResolver = propertyResolver,
                TypeResolver     = typeResolver,
            };

            var singleElementType = typeof(T).GetSingleElementType();

            return(ResourceFromDocument(json, singleElementType, settings));
        }
示例#4
0
        public static T ResourceFromDocument <T>(
            string json,
            IJsonApiTypeResolver typeResolver         = null,
            IJsonApiPropertyResolver propertyResolver = null,
            bool ignoreMissingRelationships           = false)
        {
            var settings = new JsonApiSettings
            {
                CreateResource             = true,
                PropertyResolver           = propertyResolver,
                TypeResolver               = typeResolver,
                IgnoreMissingRelationships = ignoreMissingRelationships
            };

            var singleElementType = typeof(T).GetSingleElementType();

            return(ResourceFromDocument(json, singleElementType, settings));
        }
示例#5
0
 public JsonApiNetSerializer(JsonApiSettings settings)
 {
     Settings = settings;
 }
示例#6
0
 public ContractResolver(JsonApiSettings jsonApiSettings)
 {
     _jsonApiSettings = jsonApiSettings;
 }
 public DocumentJsonConverter(JsonApiSettings settings)
 {
     _settings = settings;
 }
 public ResourceJsonConverter(JsonApiSettings settings)
 {
     _settings = settings;
 }
示例#9
0
        public static dynamic ResourceFromDocument(string json, Type resultType = null, JsonApiSettings settings = null)
        {
            var serializer = MakeSerializer(resultType, settings);

            serializer.Settings.CreateResource = true;

            return(serializer.ResourceFromDocument(json));
        }