如何序列化.net对象的成员

时间:2014-03-25 15:49:13

标签: c# xml serialization

我有一个类,其字段的类型为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;
 }

如果有更好的方法可以做到这一点,请随意添加。

2 个答案:

答案 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]