/// <summary> /// Constructs a serializer to (de)serialize the given type using the /// specified configuration section. /// </summary> /// <param name="t">the type to serialize/deserialize</param> public JsonExSerializer(Type type, string configSection) { if (type == null) throw new ArgumentNullException("type"); _serializedType = type; _context = new SerializationContext(); _context.SerializerInstance = this; XmlConfigurator.Configure(_context, configSection); }
/// <summary> /// Constructs a serializer with an existing context to (de)serialize the given type /// </summary> /// <param name="t">the type to serialize/deserialize</param> /// <param name="context"></param> public JsonExSerializer(Type type, SerializationContext context) { if (type == null) throw new ArgumentNullException("type"); if (context == null) throw new ArgumentNullException("context"); _serializedType = type; _context = context; _context.SerializerInstance = this; }
private XmlConfigurator(XmlReader reader, SerializationContext context, string sectionName) { this.reader = reader; this.context = context; this.sectionName = sectionName; handlers["IsCompact"] = delegate() { context.IsCompact = reader.ReadElementContentAsBoolean(); }; handlers["OutputTypeComment"] = delegate() { context.OutputTypeComment = reader.ReadElementContentAsBoolean(); }; handlers["OutputTypeInformation"] = delegate() { context.OutputTypeInformation = reader.ReadElementContentAsBoolean(); }; handlers["ReferenceWritingType"] = new MapHandler(HandleReferenceWritingType); handlers["TypeBindings"] = new MapHandler(HandleTypeBindings); handlers["TypeConverters"] = new MapHandler(HandleTypeConverters); handlers["CollectionHandlers"] = new MapHandler(HandleCollectionHandlers); handlers["IgnoreProperties"] = new MapHandler(HandleIgnoreProperties); }
public static void Configure(SerializationContext context, string configSection) { XmlConfigSection section = (XmlConfigSection)ConfigurationManager.GetSection(configSection); if (section == null && configSection != "JsonExSerializer") throw new ArgumentException("Unable to find config section " + configSection); if (section == null) return; string xml = section.RawXml; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); Configure(context, XmlReader.Create(new StringReader(xml)), configSection); }
public static void Configure(SerializationContext context, XmlReader reader, string sectionName) { new XmlConfigurator(reader, context, sectionName).Configure(); }
public static JsonExSerializer GetSerializer(Type type, SerializationContext context) { return new JsonExSerializer(type, context); }