Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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# 反序列化IPAddress时出现内存不足异常_C#_Xml_Xml Serialization - Fatal编程技术网

C# 反序列化IPAddress时出现内存不足异常

C# 反序列化IPAddress时出现内存不足异常,c#,xml,xml-serialization,C#,Xml,Xml Serialization,当我尝试从MyConfig.xml反序列化时,在 System.Net.IPAddress.InternalParse(String ipString, Boolean tryParse) System.Net.IPAddress.Parse(String ipString) MyNamespace.IPRange.ReadXml(XmlReader reader) IPRange.cs public class IPRange : IXmlSerializable { public

当我尝试从MyConfig.xml反序列化时,在

System.Net.IPAddress.InternalParse(String ipString, Boolean tryParse)
System.Net.IPAddress.Parse(String ipString)
MyNamespace.IPRange.ReadXml(XmlReader reader)
IPRange.cs

public class IPRange : IXmlSerializable
{
    public IPRange () { }

    public IPAddress StartIP { get; set; }
    public IPAddress EndIP { get; set; }

    public XmlSchema GetSchema()
    {
        throw new NotImplementedException();
    }

    public void ReadXml(XmlReader reader)
    {
        this.StartIP = IPAddress.Parse(reader.GetAttribute("StartIP"));
        this.EndIP = IPAddress.Parse(reader.GetAttribute("EndIP"));
    }

    public void WriteXml(XmlWriter writer)
    {
        writer.WriteAttributeString("StartIP", this.StartIP.ToString());
        writer.WriteAttributeString("EndIP", this.EndIP.ToString());
    }
}
public class MyConfig
{
    [XmlArrayItem("IPRange")]
    public List<IPRange> DMZ { get; set; }
}
MyConfig.cs

public class IPRange : IXmlSerializable
{
    public IPRange () { }

    public IPAddress StartIP { get; set; }
    public IPAddress EndIP { get; set; }

    public XmlSchema GetSchema()
    {
        throw new NotImplementedException();
    }

    public void ReadXml(XmlReader reader)
    {
        this.StartIP = IPAddress.Parse(reader.GetAttribute("StartIP"));
        this.EndIP = IPAddress.Parse(reader.GetAttribute("EndIP"));
    }

    public void WriteXml(XmlWriter writer)
    {
        writer.WriteAttributeString("StartIP", this.StartIP.ToString());
        writer.WriteAttributeString("EndIP", this.EndIP.ToString());
    }
}
public class MyConfig
{
    [XmlArrayItem("IPRange")]
    public List<IPRange> DMZ { get; set; }
}
公共类MyConfig
{
[XmlArrayItem(“IPRange”)]
公共列表DMZ{get;set;}
}
MyConfig.xml

<?xml version="1.0" encoding="utf-8" ?>
<MyConfig>
    <DMZ>
        <IPRange StartIP="{some start ip}" EndIP="{some end ip}" />
        <IPRange StartIP="{some start ip}" EndIP="{some end ip}" />
    </DMZ>
</MyConfig>

我不知道我做错了什么。 请帮我解决这个问题

谢谢

我通过在函数末尾编写reader.Read()来修复它

public void ReadXml(XmlReader reader)
{
    this.StartIP = IPAddress.Parse(reader.GetAttribute("StartIP"));
    this.EndIP = IPAddress.Parse(reader.GetAttribute("EndIP"));

    reader.Read();
}
我通过在函数末尾编写reader.Read()来修复它

public void ReadXml(XmlReader reader)
{
    this.StartIP = IPAddress.Parse(reader.GetAttribute("StartIP"));
    this.EndIP = IPAddress.Parse(reader.GetAttribute("EndIP"));

    reader.Read();
}

听起来很有趣。你试过调试吗?
reader.GetAttribute(“StartIP”)
reader.GetAttribute(“StartIP”)
是否返回合理的值?您是否尝试过多次,每次都在代码中的同一点看到错误?如果你在有冒犯性的呼叫之前中断了,你的内存使用情况如何?听起来很有趣。你试过调试吗?
reader.GetAttribute(“StartIP”)
reader.GetAttribute(“StartIP”)
是否返回合理的值?您是否尝试过多次,每次都在代码中的同一点看到错误?如果你在有冒犯性的呼叫之前中断,你的内存使用情况如何?