case "guid": return XmlConvert.ToString ((Guid)value);
case "base64":
case "base64Binary": return value == null ? String.Empty : Convert.ToBase64String ((byte[])value);
+ case "hexBinary": return value == null ? String.Empty : XmlConvert.ToBinHexString ((byte[]) value);
case "duration": return XmlConvert.ToString ((TimeSpan) value);
default: return value is IFormattable ? ((IFormattable) value).ToString (null, CultureInfo.InvariantCulture) : value.ToString ();
}
case "guid": return XmlConvert.ToGuid (value);
case "base64":
case "base64Binary": return Convert.FromBase64String (value);
+ case "hexBinary": return XmlConvert.FromBinHexString (value);
case "duration": return XmlConvert.ToTimeSpan (value);
default:
if (type.Type != null)
+2006-11-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlSerializerTests.cs : added test for hexBinary.
+
2006-11-22 Atsushi Enomoto <atsushi@ximian.com>
* XmlReflectionImporterTests.cs : added test for class that contains
}
#endif
+ [Test] // bug #79989, #79990
+ public void SerializeHexBinary()
+ {
+ XmlSerializer ser = new XmlSerializer (typeof (HexBinary));
+ StringWriter 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 (expected, sw.ToString ());
+ HexBinary h = (HexBinary) ser.Deserialize (new StringReader (sw.ToString ()));
+ Assert.AreEqual (new byte [] {1, 2, 3}, h.Data);
+ }
+
+ [XmlRoot ("HexBinary")]
+ public class HexBinary
+ {
+ [XmlAttribute (DataType = "hexBinary")]
+ public byte [] Data = new byte [] {1, 2, 3};
+ }
+
public class CDataTextNodesType
{
public CDataTextNodesInternal foo;