예제 #1
0
		public void XmlSchemaProviderQNameBecomesRootName ()
		{
			xs = new XmlSerializer (typeof (XmlSchemaProviderQNameBecomesRootNameType));
			Serialize (new XmlSchemaProviderQNameBecomesRootNameType ());
			Assert.AreEqual (Infoset ("<foo />"), WriterText);
			xs.Deserialize (new StringReader ("<foo/>"));
		}
예제 #2
0
		public void XmlSchemaProviderQNameBecomesRootName2 ()
		{
			string xml = "<XmlSchemaProviderQNameBecomesRootNameType2 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><Foo><foo /></Foo></XmlSchemaProviderQNameBecomesRootNameType2>";
			xs = new XmlSerializer (typeof (XmlSchemaProviderQNameBecomesRootNameType2));
			Serialize (new XmlSchemaProviderQNameBecomesRootNameType2 ());
			Assert.AreEqual (Infoset (xml), WriterText);
			xs.Deserialize (new StringReader (xml));
		}
예제 #3
0
		public void HasNullableField2 ()
		{
			Bug80759 foo = new Bug80759 ();
			foo.Test = "BAR";
			foo.NullableInt = 10;

			XmlSerializer serializer = new XmlSerializer (typeof (Bug80759));

			MemoryStream stream = new MemoryStream ();

			serializer.Serialize (stream, foo);
			stream.Position = 0;
			foo = (Bug80759) serializer.Deserialize (stream);

			Assert.AreEqual ("BAR", foo.Test, "#1");
			Assert.AreEqual (10, foo.NullableInt, "#2");

			foo.NullableInt = null;
			stream = new MemoryStream ();
			serializer.Serialize (stream, foo);
			stream.Position = 0;
			foo = (Bug80759) serializer.Deserialize (stream);

			Assert.AreEqual ("BAR", foo.Test, "#3");
			Assert.IsNull (foo.NullableInt, "#4");
		}
예제 #4
0
		public void SupportPrivateCtorOnly ()
		{
			XmlSerializer xs =
				new XmlSerializer (typeof (PrivateCtorOnly));
			StringWriter sw = new StringWriter ();
			xs.Serialize (sw, PrivateCtorOnly.Instance);
			xs.Deserialize (new StringReader (sw.ToString ()));
		}
예제 #5
0
		[Test] // bug #80759
		public void HasNullableField ()
		{
			Bug80759 foo = new Bug80759 ();
			foo.Test = "BAR";
			foo.NullableInt = 10;

			XmlSerializer serializer = new XmlSerializer (typeof (Bug80759));

			MemoryStream stream = new MemoryStream ();

			serializer.Serialize (stream, foo);
			stream.Position = 0;
			foo = (Bug80759) serializer.Deserialize (stream);
		}
예제 #6
0
		public void HasFieldSpecifiedButIrrelevant ()
		{
			Bug80759_2 foo = new Bug80759_2 ();
			foo.Test = "BAR";
			foo.NullableInt = 10;

			XmlSerializer serializer = new XmlSerializer (typeof (Bug80759_2));

			MemoryStream stream = new MemoryStream ();

			serializer.Serialize (stream, foo);
			stream.Position = 0;
			foo = (Bug80759_2) serializer.Deserialize (stream);
		}
예제 #7
0
		[Test] // bug #79989, #79990
		public void SerializeHexBinary ()
		{
			XmlSerializer ser = new XmlSerializer (typeof (HexBinary));
			sw = new StringWriter ();
			XmlTextWriter xtw = new XmlTextWriter (sw);
			ser.Serialize (xtw, new HexBinary ());
			xtw.Close ();
			string expected = @"<?xml version=""1.0"" encoding=""utf-16""?><HexBinary xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Data=""010203"" />";
			Assert.AreEqual (Infoset (expected), WriterText);
			HexBinary h = (HexBinary) ser.Deserialize (new StringReader (sw.ToString ()));
			Assert.AreEqual (new byte[] { 1, 2, 3 }, h.Data);
		}
예제 #8
0
		public void DateTimeRoundtrip ()
		{
			// bug #337729
			XmlSerializer ser = new XmlSerializer (typeof (DateTime));
			StringWriter sw = new StringWriter ();
			ser.Serialize (sw, DateTime.UtcNow);
			DateTime d = (DateTime) ser.Deserialize (new StringReader (sw.ToString ()));
			Assert.AreEqual (DateTimeKind.Utc, d.Kind);
		}
예제 #9
0
		public void Nullable ()
		{
			XmlSerializer ser = new XmlSerializer (typeof (int?));
			int? nullableType = 5;
			sw = new StringWriter ();
			xtw = new XmlTextWriter (sw);
			ser.Serialize (xtw, nullableType);
			xtw.Close ();
			string expected = "<?xml version=\"1.0\" encoding=\"utf-16\"?><int>5</int>";
			Assert.AreEqual (Infoset (expected), WriterText);
			int? i = (int?) ser.Deserialize (new StringReader (sw.ToString ()));
			Assert.AreEqual (5, i);
		}
예제 #10
0
		public void NullableEnums ()
		{
			WithNulls w = new WithNulls ();
			XmlSerializer ser = new XmlSerializer (typeof(WithNulls));
			StringWriter tw = new StringWriter ();
			ser.Serialize (tw, w);

			string expected = "<?xml version='1.0' encoding='utf-16'?>" +
				"<WithNulls xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
					"<nint xsi:nil='true' />" +
					"<nenum xsi:nil='true' />" +
					"<ndate xsi:nil='true' />" +
					"</WithNulls>";
			
			Assert.AreEqual (Infoset (expected), Infoset (tw.ToString ()));
			
			StringReader sr = new StringReader (tw.ToString ());
			w = (WithNulls) ser.Deserialize (sr);
			
			Assert.IsFalse (w.nint.HasValue);
			Assert.IsFalse (w.nenum.HasValue);
			Assert.IsFalse (w.ndate.HasValue);
			
			DateTime t = new DateTime (2008,4,1);
			w.nint = 4;
			w.ndate = t;
			w.nenum = TestEnumWithNulls.bb;
			
			tw = new StringWriter ();
			ser.Serialize (tw, w);
			
			expected = "<?xml version='1.0' encoding='utf-16'?>" +
				"<WithNulls xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
					"<nint>4</nint>" +
					"<nenum>bb</nenum>" +
					"<ndate>2008-04-01T00:00:00</ndate>" +
					"</WithNulls>";
			
			Assert.AreEqual (Infoset (expected), Infoset (tw.ToString ()));
			
			sr = new StringReader (tw.ToString ());
			w = (WithNulls) ser.Deserialize (sr);
			
			Assert.IsTrue (w.nint.HasValue);
			Assert.IsTrue (w.nenum.HasValue);
			Assert.IsTrue (w.ndate.HasValue);
			Assert.AreEqual (4, w.nint.Value);
			Assert.AreEqual (TestEnumWithNulls.bb, w.nenum.Value);
			Assert.AreEqual (t, w.ndate.Value);
		}
예제 #11
0
		[Test] // bug #78536
		public void CDataTextNodes ()
		{
			XmlSerializer ser = new XmlSerializer (typeof (CDataTextNodesType));
			ser.UnknownNode += new XmlNodeEventHandler (CDataTextNodes_BadNode);
			string xml = @"<CDataTextNodesType>
  <foo><![CDATA[
(?<filename>^([A-Z]:)?[^\(]+)\((?<line>\d+),(?<column>\d+)\):
\s((?<warning>warning)|(?<error>error))\s[^:]+:(?<message>.+$)|
(?<error>(fatal\s)?error)[^:]+:(?<message>.+$)
	]]></foo>
</CDataTextNodesType>";
			ser.Deserialize (new XmlTextReader (xml, XmlNodeType.Document, null));
		}
예제 #12
0
        public void Deserialize_NonSerializableObject_error()
        {
            var serializer = new XmlSerializer(typeof(NonSerializableObject));
            var xml = "<NonSerializableObject />";

            serializer.Deserialize(new StringReader(xml));
        }
예제 #13
0
        public void SerializeDeserialize_hardlySerializableObject_Ok()
        {
            var serializer = new XmlSerializer(typeof(HardlySerializableObject));
            var o = HardlySerializableObject.Create();
            var m = new MemoryStream();

            serializer.Serialize(m,o);
            m.Position = 0;
            var des = serializer.Deserialize(m);

            Assert.AreEqual(o, des);
        }
예제 #14
0
        public void SerializeDeserailize_listOfSerializableGetSetPropertiesOfPrimitiveType_theSame()
        {
            GetSetProperties o = new GetSetProperties { dat = "fff"};
            var l = new List<GetSetProperties>();
            l.Add(o);
            l.Add(o);
            var ser = new XmlSerializer(l.GetType());
            var nss = new XmlSerializerNamespaces();
            nss.Add(String.Empty, String.Empty);
            var m = new MemoryStream();

            ser.Serialize(m,l, nss);
            m.Position = 0;
            var de = (List<GetSetProperties>)ser.Deserialize(m);

            Assert.AreEqual(o.dat, de[0].dat);
            Assert.AreEqual(o.dat, de[1].dat);
        }
예제 #15
0
        public void SerializeDeserailize_serializableGetSetPropertiesOfPrimitiveType_theSame()
        {
            GetSetProperties o = new GetSetProperties{dat ="fff",StrArr = new string[]{"1","2"}};
            var ser = new  XmlSerializer(o.GetType());
            var nss = new XmlSerializerNamespaces();
            nss.Add(String.Empty, String.Empty);
            var m = new MemoryStream();
            
            ser.Serialize(m, o,nss);
            m.Position = 0;
            
            var de  = (GetSetProperties)ser.Deserialize(m);

            Assert.AreEqual(o.StrArr[0],de.StrArr[0]);
            Assert.AreEqual(o.StrArr[1], de.StrArr[1]);
            Assert.AreEqual(o.dat, de.dat);
        }