2016-10-18 14 views
0

私は、シリアル化するクラス "MsrProgram"を持っています。ただし、 "MsrProgram"のパラメータ "Number"が異なる場合は、XMLファイルに異なるパラメータが必要です。このような何かをする最も簡単な方法は何ですか?ここで動的XMLクラスを作成する

が私のコードです:私は完全なコードを与えることはできませんので

public class MsrProgram 
{ 
    [XmlAttribute] 
    public string OwnerTypeFullName { get; set; } 

    [XmlAttribute] 
    public int Number { get; set; } 

    [XmlAttribute] 
    public int MsrRange { get; set; } 

    [XmlAttribute] 
    public int TurnoverMeasure { get; set; } 
} 

public class main 
{ 
    var toolList = (from pos in Configuration.List 
     select new Position 
     { 
     ToolNumber = (int)pos.tlno, 
     Tool = 
     { 
      ToolId = pos.tlno.ToString(), 
      Step = 
      { 
       Position = "1", 
       MsrProgram = 
       { 
        OwnerTypeFullName = "", 
        Number = 1, 
        MsrRange = "1", //When Number is 1 
        TurnoverMeasure = "1", //When Number is 2 
       } 
      } 
     } 
     } 
} 
+0

if文を意味しますか? – Liam

+0

はいif文が必要です。しかし、どこでこれを行うことができますか? –

+0

3次if文を使用するか、関数を使用します。また、linqをforeachループにリファクタリングして、それを簡単にすることもできます。あなたの質問は本当にあまり明確ではありません – Liam

答えて

2

あなたのコードはすべてを示していないが、これは、あなたが行くを取得する必要があります:

var toolList = (from pos in Configuration.List 
    select new Position 
    { 
     ToolNumber = (int)pos.tlno, 
     Tool = new Tool 
     { 
      ToolId = pos.tlno.ToString(), 
      Step = new Step 
      { 
       Position = "1", 
       MsrProgram = new MsrProgram 
       { 
        OwnerTypeFullName = "", 
        Number = GetNumber(), // <- fill in what really should be used 
        MsrRange = GetNumber() == 1 ? 1 : 0, 
        TurnoverMeasure = GetNumber() == 2 ? 1 : 0 
       } 
      } 
     } 
    } 
); 

を私はまた、いくつかのnew ...文を追加しましたあなたが忘れてしまった、または忘れてしまった

関連する問題