2016-12-24 6 views
0

エラーを見つけてもらえますか? 私はXMLSERIALIZEを使用しようとしている:XmlSerializerの既定のコンストラクタを使用する正しい方法は何ですか?

public static void ProcessLines(List<string> allLines, out pfm pfm) 
    { 
     ... 
     pfm = newPfm; 
     pfm forseril = new pfm(""); 
     XmlSerializer mySerializer = new XmlSerializer(typeof(pfm)); 
     StreamWriter myWriter = new StreamWriter("myFileName.xml"); 
     mySerializer.Serialize(myWriter, forseril); 
     myWriter.Close(); 

    } 

そして、ここでは、私はデフォルトコンストラクタであるべきだと思うものです:

[Serializable] 
    [XmlRoot(ElementName = "Pfm", Namespace = null)] 
    public class pfm 
    { 

     public pfm(string data) 
     { 
      this.data = data; 
     } 

     public string data; 

     public Ctl ctl 
     { 
      get; 
      set; 
     } 

     [XmlAttribute(AttributeName = "Name")] 
     public string Name 
     { 
      get; 
      set; 
     } 

    } 

私はMicrosoftのサイトからistructionを使用:instruction

答えて

0

XmlSerializerに必要なものは、のパラメータのないコンストラクタ - constructorで、引数はありません。次のようにこのようにあなたのpfmは、コンストラクタを必要とします:

public class pfm 
{ 
    pfm() : this("") { } 

    public pfm(string data) 
    { 
     this.data = data; 
    } 
} 

パブリックである必要はありません。サンプルfiddle

+0

こんにちは!今それは動作します。助けてくれてありがとう –

関連する問題