【发布时间】:2010-09-15 14:01:57
【问题描述】:
我一直在尝试以几种不同的方式让 XmlSerializer.Deserialize 返回 null 然而这似乎不可能
我尝试了一个为 null、格式错误的 xml、格式正确的 xml 的类。
我可能在这里遗漏了一些明显的东西,但有可能吗?
为了澄清给出一个可序列化的 MyClass 类,我希望通过与以下类似的测试
[Fact] //this is a the test attribute when using xUnit
public void When_xml_Something_Then_serialize_returns_null()
{
string serializedObject = "<?xml version=\"1.0\" encoding=\"utf-8\"?><MyClass xmlns:xsi=\"http://www.w3asdsadasdasd.org/2001/XMLSchema-instance\"></MyClass>";
using (var stringReader = new StringReader(serializedObject))
{
Assert.Null(new XmlSerializer(typeof(MyClass)).Deserialize(stringReader));
}
}
在序列化字符串中尝试了不同的东西,我要么得到一个异常,要么得到一个 MyClass 的空实例 :( 谢谢 注意:这个问题有一个错字,现在更正了
注意 2:有关更详细的答案,请查看 cmets。
【问题讨论】:
-
你指的是哪种方法? XmlSerializer.Serialize 返回 void,所以不可能返回 null。
-
该死,我的意思是反序列化
-
那么你是怎么让你过去的单元测试的?
标签: c# serialization xml-serialization