public XSerializer(Type rootType, IEnumerable<Type> includedTypes, XSerializableSurrogateCollection serializableSurrogates) { if (rootType == null) throw new ArgumentNullException("rootType"); builder = new XSerializerBuilder(serializableSurrogates); builder.RegisterBuiltInTypes(); builder.RegisterRootType(rootType); if (includedTypes == null) return; foreach (var t in includedTypes) { if (t != null) builder.RegisterType(t); } }
public void SerializeARectangle() { var surrogates = new XSerializableSurrogateCollection { new ColorXSSSurrogate() }; var s = new XSerializer(typeof(Rectangle), null, surrogates); var obj = new Rectangle { Point1 = new Point(123.45, 678.9012), Point2 = new Point(350, 850), BorderColor = Color.FromArgb(127, 100, 50, 100), FillColor = Color.CadetBlue, FillMode = FillMode.Alternate }; var doc = s.GetSerializedDocument(obj); Trace.WriteLine(doc); var obj1 = (Rectangle)s.Deserialize(doc, null); Assert.AreEqual(obj.BorderColor, obj1.BorderColor); Assert.AreEqual(obj.FillColor, obj1.FillColor); Assert.AreEqual(obj.Point1, obj1.Point1); Assert.AreEqual(obj.Point2, obj1.Point2); Assert.AreEqual(obj.FillMode, obj1.FillMode); }