c# – 将一个XmlSchema写入MemoryStream失败,从Nunit运行时出现
发布时间:2020-12-15 22:56:30 所属栏目:百科 来源:网络整理
导读:我正在尝试将XmlSchema对象转换为字符串. 我正在构建一个简单的XmlSchema,编译它,然后按如下方式转换它: public string ConvertXmlSchemaToString(XmlSchema xmlSchema){ String schemaAsString = String.Empty; // compile the schema XmlSchemaSet schema
我正在尝试将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抱怨的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |