我正在尝试将 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;
}
Run Code Online (Sandbox Code Playgroud)
作为控制台应用程序运行时,一切正常,但是从 Nunit 运行时,我在“xmlSchema.Write(memStream);”中遇到异常。线。
例外是:生成 XML 文档时出错。
内部异常是:公共语言运行时检测到无效程序。
可能无法解决您的问题,但您可能希望像这样将使用包装在流周围。
// allocate memory for string output
using (MemoryStream MemStream = new MemoryStream(1024))
{
xmlSchema.Write(MemStream);
MemStream.Seek(0, SeekOrigin.Begin);
using (StreamReader reader = new StreamReader(MemStream))
{
SchemaAsString = reader.ReadToEnd();
}
}
return SchemaAsString;
Run Code Online (Sandbox Code Playgroud)
这样,流就得到了正确的处理。这可能就是 NUnit 所抱怨的。
| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |