我有一个类,其字段的类型为System.Diagnostics.Process。我想序列化我的对象,但这似乎不可能。是否有可能 1.通过属性process.StartInfo.FileName序列化成员进程 2当我反序列化时,我想尝试使用FileName重新创建进程,使用它的构造函数。
提供一些示例代码
public class Job{
/*[something like SerializeMember("StartInfo.FileName")]*/
/*[something like DeserializeMember(new Process(value))]*/
System.Diagnostics.Process process;
string name;
}
如果有更好的方法可以做到这一点,请随意添加。
答案 0 :(得分:2)
我认为你可以通过创建一个你要序列化的属性来实现这一点,然后在属性集上尝试启动进程。这是半伪代码......
public class Job{
[XmlIgnore]
System.Diagnostics.Process process;
public ProcessFileName
{
get {return process.StartInfo.FileName;}
set { process = Process.Start(value); }
}
}
答案 1 :(得分:1)
也许添加一个属性会有所帮助。
public SomeSerializableClass SerializedProcess
{
get {
ConvertProcessToSomeSerializableClass(process);
}
set {
process = ConvertSomeSerialzableClassToProcess(value);
}
}
然后在process
上添加属性[XmlIgnore]