2016-10-18 4 views
0

Ich habe eine Klasse "MsrProgram", die serialisiert wird. Wenn der Parameter "Number" in "MsrProgram" jedoch anders ist, brauche ich andere Parameter in meiner XML-Datei. Was ist der einfachste Weg, so etwas zu tun?Erstellen Sie dynamische XML-Klasse

Hier ist mein Code:

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

Meinst du eine if-Anweisung? – Liam

+0

Ja, ich brauche eine if-Anweisung. Aber wo kann ich das machen? –

+0

Verwenden Sie eine tertiäre if-Anweisung oder verwenden Sie eine Funktion. Sie könnten Ihre linq auch in eine foreach-Schleife umgestalten, die das vereinfacht. Ihre Frage ist jedoch nicht sehr klar – Liam

Antwort

2

Ihr Code zeigt nicht alles, damit ich nicht vollständigen Code geben kann, aber das sollte man losgeht:

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 
       } 
      } 
     } 
    } 
); 

ich auch mehr hinzugefügt new ... Aussagen was du verpasst oder vergessen hast.