SqlXml,我不能在错误时抛出异常 xml

SqlXml, i cant throw exception on wrong xml

我写了这段代码:

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

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

如果我尝试:

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

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

提前致谢!

因为简单地调用构造函数不会对该类型的流(请参阅 code)执行任何操作。仅当您 "do something" 使用该实例时,它实际上会尝试读取 data/stream,如果按顺序抛出异常。

Value-property is one such thing that will cause the passed stream to be actually read. There are others, check the documentation.

因此,如果您真的想使用此 class 来检查流是否包含有效的 XML,请像您已经做的那样做。调用 SqlXml.Value 属性(并且可能将它分配给一个字符串以取得良好的效果,即使您不使用它也是如此)。如果抛出,则 XML 无效 - 正如您已经观察到的那样。