2016-08-07 20 views
0

Ich bin auf der Suche nach einem dynamischen Objekt von einer Drittanbieter-API & konvertieren in meine C# -Objekt mit minimalem Code. Sortierung nach dem, was Dapper mit einer SQL-Anweisung zu einem C# -Objekt ausführt. Gibt es eine Bibliothek, die das tun würde? Ich kann es manuell wie unten tun, aber es scheint wie viel Code zu schreiben jedes Mal, wenn ich von dieser API abrufen möchte.konvertieren dynamisches Objekt in C# -Objekt

public IEnumerable<Requirement> Get() 
    { 
     dynamic requirementsSelect; 
     requirementsSelect = _RequirementsRepository.GetRequirements(); 
     IList<Requirement> Requirements = new List<Requirement>(); 
     foreach (var req in requirementsSelect) 
     { 
      Requirement requirement = new Requirement(); 
      requirement.Text = req.Text; 
      requirement.Number = req.Number; 
      Requirements.Add(requirement); 
      foreach (var node in req.Phrases) 
      { 
       Requirement reqNode = new Requirement(); 
       reqNode.Text = node.Text; 
       reqNode.Number = node.Number; 
       requirement.Nodes.Add(reqNode); 
     } 
     return Requirements; 
    } 

Dank

+0

Haben Sie JSON versucht? –

+0

@MokhtarAshour Ich dachte an Newtonsoft.Json, aber ich möchte, dass es ein C# -Objekt ist - nicht json. Danke – shw

+1

@gypsyCoder sicher, aber ich meinte, die JSON von der 3rd Party API zu senden und es zu einem C# Objekt zu deserialisieren, das Sie in Ihrem Code haben –

Antwort

1

endete ich wie folgt den Dritten als JSON Rückkehr auf. In meinem speziellen Fall zeigte der JSON die Eigenschaften nicht. Ich löste, indem ich das dynamische Objekt zu IEnumerable änderte, und ich konnte dann angeben, welche Eigenschaften ich abrufen wollte, mit .Select.

IEnumerable<dynamic> requirements = _RequirementsRepository.GetRequirements(); 
     return JsonConvert.SerializeObject(new 
     { 
      Requirement = requirements.Select(x => x.Text), 
      Number = requirements.Select(x => x.Number), 
     }); 

Vielen Dank!

Verwandte Themen