SqlXml,我不能在错误的xml

时间:2017-09-04 13:53:57

标签: c# .net clr

我写了这段代码:

SqlXml s = new SqlXml(new MemoryStream(new UnicodeEncoding().GetBytes("asd")));

但为什么它没有给我任何例外......为什么?

如果我尝试:

SqlXml s = new SqlXml(new MemoryStream(new UnicodeEncoding().GetBytes("asd")));
String g=s.Value;

我对值赋值有异常。 哪里错了?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

因为简单地调用构造函数不会对此类型的流做任何操作(请参阅code)。只有你做某事"对于实例,它实际上会尝试读取数据/流,并按顺序抛出异常。

Value - 属性就是一个会导致传递的流被实际读取的东西。还有其他人,请查看documentation

因此,如果您真的想使用此类来检查流是否包含有效的XML,那么就像您已经这样做一样。调用SqlXml.Value属性(并且可能将其分配给字符串以进行测量,即使您不使用它)。如果抛出,则XML无效 - 就像您已经观察到的那样。