微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 将一个XmlSchema写入MemoryStream失败,从Nunit运行时出现异常

我正在尝试将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文档时出错.

内部异常是:Common Language Runtime检测到无效程序.

解决方法

可能不会解决你的问题,但你可能想要在你的流周围包装使用像这样.

// 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;

这样就可以妥善处理这些流.这可能是NUnit抱怨的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐