Hir*_*iya 6 c# xml-serialization
我有一些xml文件,我试图在给定的代码中反序列化如下.
using (StreamReader srFileContent = new StreamReader(filePath))
{
XmlSerializer serializer = new XmlSerializer(typeof(messageType));
messageType objMessage = (messageType)serializer.Deserialize(srFileContent);
}
Run Code Online (Sandbox Code Playgroud)
这里文件位于filePath不包含以下行
<?xml version="1.0"?>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Run Code Online (Sandbox Code Playgroud)
这就是我收到错误的原因.在反序列化给定文件的流之前,您可以帮助我如何添加此行运行时.
错误如下:
System.InvalidOperationException:XML文档中存在错误(2,2).---> System.InvalidOperationException:没想到.在Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReadermessageType.Read161_message()---内部异常堆栈跟踪的结束---在系统的System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,String encodingStyle,XmlDeserializationEvents事件) CCR2BB.frmMain.BWConvertProcess_DoWork()的.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
lep*_*pie 13
您将不得不查看基本异常以找出问题所在.捕获的异常可能包含4个或更多内部异常.
例如:
try
{
...
}
catch (Exception ex)
{
Console.WriteLine(ex.GetBaseException());
}
Run Code Online (Sandbox Code Playgroud)
另一个问题的解决方案是:
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "message";
// xRoot.Namespace = "http://www.cpandl.com";
xRoot.IsNullable = true;
XmlSerializer xs = new XmlSerializer(typeof(messageType),xRoot);
Run Code Online (Sandbox Code Playgroud)
也许这是解决您问题的一种方法。由于我的网络 MSDN 已关闭,因此我无法提供有关 XmlRootAttribute 的更多文档。
| 归档时间: |
|
| 查看次数: |
24763 次 |
| 最近记录: |