从 Nunit 运行时,将 XmlSchema 写入 MemoryStream 失败并出现异常
我正在尝试将 XmlSchema 对象转换为字符串。
我正在构建一个简单的 XmlSchema,对其进行编译,然后按如下方式进行转换:
public string ConvertXmlSchemaToString(XmlSchema xmlSchema)
{
String schemaAsString = String.Empty;
// compile the schema
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(xmlSchema);
schemaSet.ValidationEventHandler += new ValidationEventHandler(schemaSet_ValidationEventHandler);
schemaSet.Compile();
// allocate memory for string output
MemoryStream memStream = new MemoryStream(1024);
xmlSchema.Write(memStream);
memStream.Seek(0, SeekOrigin.Begin);
StreamReader reader = new StreamReader(memStream);
schemaAsString = reader.ReadToEnd();
return schemaAsString;
}
作为控制台应用程序运行时,一切正常,但从 Nunit 运行时,我在“xmlSchema.Write(memStream);”中遇到异常。 线。
例外情况是:生成 XML 文档时出错。
内部异常是:公共语言运行时检测到无效程序。
I'm trying to convert an XmlSchema object to string.
I'm building a simple XmlSchema, compiling it, and then converting it as follows:
public string ConvertXmlSchemaToString(XmlSchema xmlSchema)
{
String schemaAsString = String.Empty;
// compile the schema
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(xmlSchema);
schemaSet.ValidationEventHandler += new ValidationEventHandler(schemaSet_ValidationEventHandler);
schemaSet.Compile();
// allocate memory for string output
MemoryStream memStream = new MemoryStream(1024);
xmlSchema.Write(memStream);
memStream.Seek(0, SeekOrigin.Begin);
StreamReader reader = new StreamReader(memStream);
schemaAsString = reader.ReadToEnd();
return schemaAsString;
}
While running as a console app, everything works fine, but when running from Nunit I get an exception in the "xmlSchema.Write(memStream);" line.
exception is : There was an error generating the XML document.
inner exception is : Common Language Runtime detected an invalid program.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能无法解决您的问题,但您可能希望像这样将使用包装在流周围。
这样,流就得到了正确的处理。 这可能就是 NUnit 所抱怨的。
Probably won't fix your problem, but you might want to wrap usings around your streams like so.
That way the streams are disposed of properly. That might be what NUnit is complaining about.