public JsonSerializationOptions(NullValueHandling nullValueHandling, MissingMemberHandling missingMemberHandling,
     ReferenceLoopHandling referenceLoopHandling)
 {
     NullValueHandling = nullValueHandling;
     MissingMemberHandling = missingMemberHandling;
     ReferenceLoopHandling = referenceLoopHandling;
 }
Example #2
0
        public static void ConfigureCamelCase(
            this JsonMediaTypeFormatter formatter,
            ReferenceLoopHandling referenceLoopHandling           = ReferenceLoopHandling.Ignore,
            DateTimeZoneHandling dateTimeZoneHandling             = DateTimeZoneHandling.Utc,
            NullValueHandling nullValueHandling                   = NullValueHandling.Ignore,
            PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.None,
            bool useDataContractJsonSerializer      = false,
            bool useJsonMediaTypeForHtmlHeaderValue = true)
        {
            formatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            formatter.SerializerSettings.Converters.Add(new StringEnumConverter {
                CamelCaseText = true
            });

            formatter.SerializerSettings.ReferenceLoopHandling      = referenceLoopHandling;
            formatter.SerializerSettings.DateTimeZoneHandling       = dateTimeZoneHandling;
            formatter.SerializerSettings.NullValueHandling          = nullValueHandling;
            formatter.SerializerSettings.PreserveReferencesHandling = preserveReferencesHandling;
            formatter.UseDataContractJsonSerializer = useDataContractJsonSerializer;

            if (useJsonMediaTypeForHtmlHeaderValue)
            {
                formatter.MediaTypeMappings.Add(new RequestHeaderMapping("Accept", "text/html", StringComparison.InvariantCultureIgnoreCase, true, "application/json"));
            }
        }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling  = ReferenceLoopHandling.Error;
     _missingMemberHandling  = MissingMemberHandling.Error;
     _nullValueHandling      = NullValueHandling.Include;
     _objectCreationHandling = ObjectCreationHandling.Auto;
 }
 /// <summary>
 /// Extends the ToJsonString for all objects
 /// </summary>
 /// <param name="obj">The Object</param>
 /// <param name="handleLoopReference">The handler</param>
 /// <returns>The string json representation of the object</returns>
 public static string ToJsonString(this object obj, ReferenceLoopHandling handleLoopReference = ReferenceLoopHandling.Error)
 {
     new CamelCasePropertyNamesContractResolver();
     return(JsonConvert.SerializeObject(obj, new JsonSerializerSettings {
         NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = handleLoopReference, ContractResolver = new CamelCasePropertyNamesContractResolver()
     }));
 }
Example #5
0
    public static T ImportarJson <T>(string path, string nombreFichero, ReferenceLoopHandling refLoopHdl, bool log = true)
    {
        string filePath = path + nombreFichero + JSONEXT;

        T datos = default(T);

        if (File.Exists(filePath))
        {
            string dataAsJson = File.ReadAllText(filePath);

            datos = JsonConvert.DeserializeObject <T>(dataAsJson
                                                      //Por si da este error...
                                                      , new JsonSerializerSettings {
                ReferenceLoopHandling = refLoopHdl
            }
                                                      );
            if (log)
            {
                Debug.Log("Se han importado los datos del archivo '" + nombreFichero + JSONEXT + "'.");
            }
        }
        else
        {
            Debug.LogError("No se ha encontrado el archivo con el nombre '" + nombreFichero + JSONEXT + "'.");
        }
        return(datos);
    }
Example #6
0
    public static void ExportarJson <T>(T datos, string path, string nombreFichero, ReferenceLoopHandling refLoopHdl, bool log = true)
    {
        string filePath = path + nombreFichero + JSONEXT;

        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
            Debug.Log("Se ha creado el directorio en el path: " + path);
        }

        string dataAsJson = "";

        dataAsJson += JsonConvert.SerializeObject(datos, Formatting.Indented
                                                  //Por si da este error...
                                                  , new JsonSerializerSettings {
            ReferenceLoopHandling = refLoopHdl
        }
                                                  );

        File.WriteAllText(filePath, dataAsJson);
        if (log)
        {
            Debug.Log("Se han exportado los datos del archivo '" + nombreFichero + JSONEXT + "'.");
        }
    }
Example #7
0
 public static string ToJson <T>(this T lista, ReferenceLoopHandling referenceLoopHandling)
 {
     return(lista.ToJson(new JsonSerializerSettings
     {
         ReferenceLoopHandling = referenceLoopHandling
     }));
 }
Example #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentity <StoreUser, IdentityRole>(cfg =>
            {
                cfg.User.RequireUniqueEmail = true;
            }).AddEntityFrameworkStores <TigerContext>();

            services.AddAuthentication()
            .AddCookie()
            .AddJwtBearer(cfg =>
            {
                cfg.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidIssuer      = Configuration["Tokens:Issuer"],
                    ValidAudience    = Configuration["Tokens:Audience"],
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Tokens:Key"]))
                };
            });

            services.AddDbContext <TigerContext>(cfg =>
            {
                cfg.UseSqlServer(Configuration.GetConnectionString("TigerConnectionString"));
            });

            services.AddControllersWithViews();
            services.AddTransient <TigerSeeder>();                     //code added
            services.AddAutoMapper(Assembly.GetExecutingAssembly());   //code added
            services.AddScoped <ITigerRepository, TigerRepository> (); //code added
            services.AddMvc().AddJsonOptions(opt => JsonSerializerOptions = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
        }
Example #9
0
        private static string GetObjectContent(object obj, ReferenceLoopHandling referenceLoopHandling = ReferenceLoopHandling.Ignore)
        {
            var jsonSettings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = referenceLoopHandling
            };

            return(JsonConvert.SerializeObject(obj, Formatting.Indented, jsonSettings));
        }
Example #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling  = JsonSerializerSettings.DefaultReferenceLoopHandling;
     _missingMemberHandling  = JsonSerializerSettings.DefaultMissingMemberHandling;
     _nullValueHandling      = JsonSerializerSettings.DefaultNullValueHandling;
     _defaultValueHandling   = JsonSerializerSettings.DefaultDefaultValueHandling;
     _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
 }
Example #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = JsonSerializerSettings.DefaultReferenceLoopHandling;
       _missingMemberHandling = JsonSerializerSettings.DefaultMissingMemberHandling;
       _nullValueHandling = JsonSerializerSettings.DefaultNullValueHandling;
       _defaultValueHandling = JsonSerializerSettings.DefaultDefaultValueHandling;
       _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
 }
Example #12
0
 public IgnoreThisConverter(JsonSerializer serializer, JsonConverter converter)
 {
     this.serializer                  = serializer;
     this.saveConverter               = converter;
     this.saveLoophandling            = serializer.ReferenceLoopHandling;
     serializer.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
     this.saveIndex = serializer.Converters.IndexOf(converter);
     serializer.Converters.RemoveAt(saveIndex);
 }
Example #13
0
 /// <summary/>
 public JsonContent(object obj, NullValueHandling nullHandling = NullValueHandling.Ignore,
                    ReferenceLoopHandling loopHandling         = ReferenceLoopHandling.Ignore) :
     base(JsonConvert.SerializeObject(obj, new JsonSerializerSettings
 {
     NullValueHandling     = nullHandling,
     ReferenceLoopHandling = loopHandling
 }), Encoding.UTF8, "application/json")
 {
 }
 public JsonSerializer(TypeNameHandling typeNameHandling, ReferenceLoopHandling referenceLoopHandling)
 {
     JsonConvert.DefaultSettings = JsonConvert.DefaultSettings ?? new Func <JsonSerializerSettings>(() =>
                                                                                                    new JsonSerializerSettings()
     {
         TypeNameHandling      = typeNameHandling,
         ReferenceLoopHandling = referenceLoopHandling
     });
 }
        public static string SerializeToJson(object obj, bool indented, ReferenceLoopHandling referenceLoopHandling)
        {
            var settings = new JsonSerializerSettings();

            settings.Formatting            = indented ? Newtonsoft.Json.Formatting.Indented : Newtonsoft.Json.Formatting.None;
            settings.ReferenceLoopHandling = referenceLoopHandling;
            settings.ContractResolver      = new CamelCasePropertyNamesContractResolver();
            return(JsonConvert.SerializeObject(obj, settings));
        }
Example #16
0
        public static ActionResult ToJsonResult(this object obj, ReferenceLoopHandling HandleLoopReference = ReferenceLoopHandling.Error)
        {
            var content = new ContentResult();

            content.Content = JsonConvert.SerializeObject(obj, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = HandleLoopReference
            });
            content.ContentType = "application/json";
            return(content);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 /// <param name="typeNameHandling">The type name handling.</param>
 /// <param name="referenceLoopHandling">The reference loop handling.</param>
 /// <param name="ignoreNulls">if set to <c>true</c> [ignore nulls].</param>
 /// <param name="contractResolver">The contract resolver.</param>
 public JsonSerializer(TypeNameHandling typeNameHandling, ReferenceLoopHandling referenceLoopHandling, bool ignoreNulls = true, IContractResolver contractResolver = null)
 {
     this.Settings = new JsonSerializerSettings()
     {
         TypeNameHandling      = typeNameHandling,
         ReferenceLoopHandling = referenceLoopHandling,
         NullValueHandling     = ignoreNulls ? NullValueHandling.Ignore : NullValueHandling.Include,
         ContractResolver      = contractResolver
     };
 }
Example #18
0
 public BeetleApiConfig(NullValueHandling nullValueHandling,
                        TypeNameHandling typeNameHandling                     = TypeNameHandling.Objects,
                        Formatting formatting                                 = Formatting.Indented,
                        ReferenceLoopHandling referenceLoopHandling           = ReferenceLoopHandling.Ignore,
                        PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.Objects,
                        DateTimeZoneHandling dateTimeZoneHandling             = DateTimeZoneHandling.Local)
     : base(nullValueHandling, typeNameHandling, formatting, referenceLoopHandling,
            preserveReferencesHandling, dateTimeZoneHandling)
 {
 }
Example #19
0
 public JsonSerializer(TypeNameHandling typeNameHandling, ReferenceLoopHandling referenceLoopHandling, bool ignoreNulls = true)
 {
     JsonConvert.DefaultSettings = JsonConvert.DefaultSettings ?? new Func <JsonSerializerSettings>(() =>
                                                                                                    new JsonSerializerSettings()
     {
         TypeNameHandling      = typeNameHandling,
         ReferenceLoopHandling = referenceLoopHandling,
         NullValueHandling     = ignoreNulls ? NullValueHandling.Ignore : NullValueHandling.Include
     });
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
     _missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
     _nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
     _defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
     _objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
     _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
     _typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
     _binder = DefaultSerializationBinder.Instance;
 }
Example #21
0
        /// <summary>
        /// 序列化为json
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <param name="referenceLoopHandling">默认移除对象之间循环引用,避免序列化出错</param>
        /// <returns></returns>
        public static string ToJson <T>(this T obj, ReferenceLoopHandling referenceLoopHandling = ReferenceLoopHandling.Ignore)
            where T : class
        {
            //移除循环引用
            var setting = new JsonSerializerSettings
            {
                ReferenceLoopHandling = referenceLoopHandling
            };

            return(JsonConvert.SerializeObject(obj, setting));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = JsonSerializerSettings.DefaultReferenceLoopHandling;
       _missingMemberHandling = JsonSerializerSettings.DefaultMissingMemberHandling;
       _nullValueHandling = JsonSerializerSettings.DefaultNullValueHandling;
       _defaultValueHandling = JsonSerializerSettings.DefaultDefaultValueHandling;
       _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
       _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
       _typeNameHandling = JsonSerializerSettings.DefaultTypeNameHandling;
       _binder = DefaultSerializationBinder.Instance;
 }
        public JsonSerializerSettings(JsonSerializerSettings monSettings)
        {
            this.settings = new Newtonsoft.Json.JsonSerializerSettings();

            //It doesn't have deep copy
            this.ContractResolver      = monSettings.ContractResolver.Clone();
            this.Converters            = new List <JsonConverter>(monSettings.Converters);
            this.Formatting            = monSettings.Formatting;
            this.MissingMemberHandling = monSettings.MissingMemberHandling;
            this.NullValueHandling     = monSettings.NullValueHandling;
            this.ReferenceLoopHandling = monSettings.ReferenceLoopHandling;
        }
Example #24
0
 public JsonSerializerSettings GetJSONSettings(bool ignoreNull, ReferenceLoopHandling referenceLoopHandling = ReferenceLoopHandling.Ignore, bool useCamelCaseNaming = true)
 {
     return(new JsonSerializerSettings
     {
         ContractResolver = useCamelCaseNaming ? new CamelCasePropertyNamesContractResolver() :  new DefaultContractResolver(),
         Converters = new List <JsonConverter> {
             new StringEnumConverter()
         },
         NullValueHandling = ignoreNull ? NullValueHandling.Ignore : NullValueHandling.Include,
         ReferenceLoopHandling = referenceLoopHandling
     });
 }
        public static string ToGetJsonString(this object obj, ReferenceLoopHandling loopHanding)
        {
            if (obj == null)
            {
                return(null);
            }

            return(JsonConvert.SerializeObject(obj, new JsonSerializerSettings()
            {
                ReferenceLoopHandling = loopHanding
            }));
        }
Example #26
0
 public JsonSerializer()
 {
     this._referenceLoopHandling      = ReferenceLoopHandling.Error;
     this._missingMemberHandling      = MissingMemberHandling.Ignore;
     this._nullValueHandling          = NullValueHandling.Include;
     this._defaultValueHandling       = DefaultValueHandling.Include;
     this._objectCreationHandling     = ObjectCreationHandling.Auto;
     this._preserveReferencesHandling = PreserveReferencesHandling.None;
     this._constructorHandling        = ConstructorHandling.Default;
     this._typeNameHandling           = TypeNameHandling.None;
     this._context = JsonSerializerSettings.DefaultContext;
     this._binder  = (SerializationBinder)DefaultSerializationBinder.Instance;
 }
 /// <summary>
 ///     Converts a object (input) into a string
 /// </summary>
 /// <param name="input"></param>
 /// <param name="nullValueHandler"></param>
 /// <param name="formatting"></param>
 /// <param name="referenceLoopHandling"></param>
 /// <returns></returns>
 public static string ToJson(this object input, NullValueHandling nullValueHandler = NullValueHandling.Include,
                             Formatting formatting = Formatting.Indented,
                             ReferenceLoopHandling referenceLoopHandling = ReferenceLoopHandling.Error)
 {
     return(JsonConvert.SerializeObject(
                input,
                formatting,
                new JsonSerializerSettings
     {
         NullValueHandling = nullValueHandler,
         ReferenceLoopHandling = referenceLoopHandling
     }
                ));
 }
Example #28
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
        /// </summary>
        public JsonSerializer()
        {
            this._referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
            this._missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
            this._nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
            this._defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
            this._objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
            this._preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
            this._constructorHandling        = JsonSerializerSettings.DefaultConstructorHandling;
            this._typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
            this.Context = JsonSerializerSettings.DefaultContext;

            this._binder = DefaultSerializationBinder.Instance;
        }
        /// <summary>
        /// Extends the ToJsonResult for all objects
        /// </summary>
        /// <param name="obj">The Object</param>
        /// <param name="handleLoopReference">The handler</param>
        /// <returns>The object as JsonActionResult</returns>
        public static ActionResult ToJsonResult(this object obj, ReferenceLoopHandling handleLoopReference = ReferenceLoopHandling.Error)
        {
            var content = new ContentResult()
            {
                Content = JsonConvert.SerializeObject(
                    obj,
                    new JsonSerializerSettings {
                    NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = handleLoopReference, ContractResolver = new CamelCasePropertyNamesContractResolver()
                }),
                ContentType = "application/json"
            };

            return(content);
        }
Example #30
0
        /// <summary>
        /// Tests the ReferenceLoopHandling property in a JSON serializer settings object.
        /// </summary>
        /// <param name="referenceLoopHandling">Expected ReferenceLoopHandling.</param>
        /// <returns>The same JSON serializer settings test builder.</returns>
        public IAndJsonSerializerSettingsTestBuilder WithReferenceLoopHandling(ReferenceLoopHandling referenceLoopHandling)
        {
            this.jsonSerializerSettings.ReferenceLoopHandling = referenceLoopHandling;
            this.validations.Add((expected, actual) =>
            {
                if (!CommonValidator.CheckEquality(expected.ReferenceLoopHandling, actual.ReferenceLoopHandling))
                {
                    this.ThrowNewJsonResultAssertionException(
                        string.Format("{0} reference loop handling", expected.ReferenceLoopHandling),
                        string.Format("in fact found {0}", actual.ReferenceLoopHandling));
                }
            });

            return(this);
        }
Example #31
0
        public JsonpResult ParseJsonp(object data, int depth = 1
                                      , ReferenceLoopHandling referenceLoopHandling = ReferenceLoopHandling.Ignore)
        {
            var result = new JsonpResult
            {
                Data = data,
                JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet,
                Settings            =
                {
                    ReferenceLoopHandling = referenceLoopHandling,
                    MaxDepth              = depth// product, productdetail, author
                }
            };

            return(result);
        }
Example #32
0
 public BeetleConfig(NullValueHandling nullValueHandling,
                     TypeNameHandling typeNameHandling                     = TypeNameHandling.Objects,
                     Formatting formatting                                 = Formatting.Indented,
                     ReferenceLoopHandling referenceLoopHandling           = ReferenceLoopHandling.Ignore,
                     PreserveReferencesHandling preserveReferencesHandling = PreserveReferencesHandling.Objects,
                     DateTimeZoneHandling dateTimeZoneHandling             = DateTimeZoneHandling.Local)
     : this(new JsonSerializerSettings {
     NullValueHandling = nullValueHandling,
     TypeNameHandling = typeNameHandling,
     TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
     Formatting = formatting,
     ReferenceLoopHandling = referenceLoopHandling,
     PreserveReferencesHandling = preserveReferencesHandling,
     DateTimeZoneHandling = dateTimeZoneHandling
 })
 {
 }
Example #33
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
        /// </summary>
        public JsonSerializer()
        {
            _referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
            _missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
            _nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
            _defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
            _objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
            _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
            _constructorHandling        = JsonSerializerSettings.DefaultConstructorHandling;
            _typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
            _metadataPropertyHandling   = JsonSerializerSettings.DefaultMetadataPropertyHandling;
            _context = JsonSerializerSettings.DefaultContext;
            _binder  = DefaultSerializationBinder.Instance;

            _culture          = JsonSerializerSettings.DefaultCulture;
            _contractResolver = DefaultContractResolver.Instance;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = ReferenceLoopHandling.Error;
       _missingMemberHandling = MissingMemberHandling.Error;
 }
Example #35
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
   _referenceLoopHandling = ReferenceLoopHandling.Error;
   _missingMemberHandling = MissingMemberHandling.Error;
   _nullValueHandling = NullValueHandling.Include;
   _objectCreationHandling = ObjectCreationHandling.Auto;
 }
		private bool CheckForCircularReference(object value, ReferenceLoopHandling? referenceLoopHandling, JsonContract contract)
		{
			if (value == null || contract is JsonPrimitiveContract)
				return true;

			if (SerializeStack.IndexOf(value) != -1)
			{
				var selfRef = (value is Vector2 || value is Vector3 || value is Vector4 || value is Color || value is Color32)
					? ReferenceLoopHandling.Ignore
					: referenceLoopHandling.GetValueOrDefault(Serializer.ReferenceLoopHandling);
				switch (selfRef)
				{
					case ReferenceLoopHandling.Error:
						throw new JsonSerializationException("Self referencing loop detected for type '{0}'.".FormatWith(CultureInfo.InvariantCulture, value.GetType()));
					case ReferenceLoopHandling.Ignore:
						return false;
					case ReferenceLoopHandling.Serialize:
						return true;
					default:
						throw new InvalidOperationException("Unexpected ReferenceLoopHandling value: '{0}'".FormatWith(CultureInfo.InvariantCulture, Serializer.ReferenceLoopHandling));
				}
			}

			return true;
		}
Example #37
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer(JavaScriptSerializer context, JavaScriptTypeResolver resolver)
 {
     _context = context;
     _typeResolver = resolver;
     _referenceLoopHandling = ReferenceLoopHandling.Error;
 }
        private bool CheckForCircularReference(object value, ReferenceLoopHandling? referenceLoopHandling, JsonContract contract)
        {
            if (value == null || contract is JsonPrimitiveContract)
            return true;

              if (SerializeStack.IndexOf(value) != -1)
              {
            switch (referenceLoopHandling.GetValueOrDefault(Serializer.ReferenceLoopHandling))
            {
              case ReferenceLoopHandling.Error:
            throw new JsonSerializationException("Self referencing loop");
              case ReferenceLoopHandling.Ignore:
            return false;
              case ReferenceLoopHandling.Serialize:
            return true;
              default:
            throw new InvalidOperationException("Unexpected ReferenceLoopHandling value: '{0}'".FormatWith(CultureInfo.InvariantCulture, Serializer.ReferenceLoopHandling));
            }
              }

              return true;
        }
Example #39
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = ReferenceLoopHandling.Error;
 }