Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “得到错误”;xml文档(140)中有一个错误;在对xml进行反序列化时_C#_Asp.net_Xml - Fatal编程技术网

C# “得到错误”;xml文档(140)中有一个错误;在对xml进行反序列化时

C# “得到错误”;xml文档(140)中有一个错误;在对xml进行反序列化时,c#,asp.net,xml,C#,Asp.net,Xml,我有一个asp.NET2.0网站。 我正在使用反序列化方法来反序列化xml。 我犯了这个错误 “xml文档(140)中有错误” 公共列表反序列化对象(字符串pstrXML) { 列表_obj=新列表(); 尝试 { 如果(!string.IsNullOrEmpty(pstrXML)) { XmlSerializer_XmlSerializer=新的XmlSerializer(typeof(List)); StringReader _strReader=新的StringReader(pstrXML

我有一个asp.NET2.0网站。 我正在使用反序列化方法来反序列化xml。 我犯了这个错误

“xml文档(140)中有错误”

公共列表反序列化对象(字符串pstrXML)
{
列表_obj=新列表();
尝试
{
如果(!string.IsNullOrEmpty(pstrXML))
{
XmlSerializer_XmlSerializer=新的XmlSerializer(typeof(List));
StringReader _strReader=新的StringReader(pstrXML);
_obj=(List)_xmlSerializer.Deserialize(_strReader);
}
返回对象;
}
捕获(例外e)
{ 
投掷e;
}
最后
{
_obj=null;
}
}

试试下面的东西..虽然我没有检查它,但仍然无法工作,那么您的XML文件中有错误

var serializer = new XmlSerializer(typeof(List<Test_XML>));

    List<Test_XML> _obj;

    using(var stream = new StringReader(pstrXML))
    using(var reader = XmlReader.Create(stream))
    {
        _obj= (List<Test_XML>)serializer.Deserialize(reader);
    }
var serializer=newxmlserializer(typeof(List));
清单(obj),;
使用(var stream=newstringreader(pstrXML))
使用(var reader=XmlReader.Create(stream))
{
_obj=(列表)序列化程序。反序列化(读取器);
}

您可能希望包含这部分XML文档。您也可以快速检查它,在浏览器中打开您的XML,如果它打开正确,您可能需要查看代码,但我猜您的XML有问题。此外,我怀疑错误消息实际上包含了更多信息。通过删除毫无意义的try/catch/finally块,您可以使方法的大小减少一半——这基本上等同于只有
try
块的主体(但更糟糕的是,当您重新显示异常时,实际上会丢失有用的stacktrace信息)。您很少需要像这样将变量设置为null—当然不是方法末尾的局部变量。My XML在浏览器中正确打开。
var serializer = new XmlSerializer(typeof(List<Test_XML>));

    List<Test_XML> _obj;

    using(var stream = new StringReader(pstrXML))
    using(var reader = XmlReader.Create(stream))
    {
        _obj= (List<Test_XML>)serializer.Deserialize(reader);
    }