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 无效 - 正如您已经观察到的那样。
我写了这段代码:
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 无效 - 正如您已经观察到的那样。