C# XMl反序列化StackOverflowException
我正在尝试从allready保存的.xml文件反序列化一个类代码>该代码引发StackOverflow异常。我是否用这段代码创建了一个无限循环?因为我找不到一个有停顿点的环路 班级:C# XMl反序列化StackOverflowException,c#,xml,wpf,C#,Xml,Wpf,我正在尝试从allready保存的.xml文件反序列化一个类该代码引发StackOverflow异常。我是否用这段代码创建了一个无限循环?因为我找不到一个有停顿点的环路 班级: [Serializable] public class AddOn { [System.Xml.Serialization.XmlElement("Name")] public string Name { set; get; } [XmlIgnore] public ProcessSt
[Serializable]
public class AddOn
{
[System.Xml.Serialization.XmlElement("Name")]
public string Name { set; get; }
[XmlIgnore]
public ProcessStartInfo Info {
set { Info = value; }
get {
Info.Arguments = args;
Info.Arguments = Path;
return Info;
}
}
[System.Xml.Serialization.XmlElement("Arguments")]
public string args { set; get; }
[System.Xml.Serialization.XmlElement("Path")]
public string Path { set; get; }
[XmlIgnore]
public List<Process> ChildProcess = new List<Process>();
public AddOn(string Name, ProcessStartInfo Info)
{
this.Name = Name;
this.Info = Info;
args = Info.Arguments;
Path= Info.FileName;
}
public AddOn() { }
}
get{…}
函数抛出StackOverflowException
我确实忽略了ProcessStartInfo,因为我首先无法序列化此类型,因此创建了两个字符串args和Path
应返回加载项反序列化列表的代码:
XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollection<AddOn>));
StreamReader reader = new StreamReader(path);
var addons = (ObservableCollection<AddOn>)serializer.Deserialize(reader);
reader.Close();
return addons;
XmlSerializer serializer=新的XmlSerializer(typeof(observeCollection));
StreamReader=新的StreamReader(路径);
var addons=(ObservableCollection)序列化程序。反序列化(读取器);
reader.Close();
返回插件;
此呼叫
public ProcessStartInfo **Info** {
**set { Info = value; }**
get {
Info.Arguments = args;
Info.Arguments = Path;
return Info;
}
}
呼叫本身导致溢出感谢您的提醒!除此之外,我完全搞砸了get-get部分,它涉及到ProcessStartInfo本身。这就产生了循环。
public ProcessStartInfo **Info** {
**set { Info = value; }**
get {
Info.Arguments = args;
Info.Arguments = Path;
return Info;
}
}