2017-02-13 1 views
0
Public Class Employee 
{ 
    Public String EmployeeId {get;set;} 
    Public String EmployeeName {get;set;} 
    Public String Department {get;set;} 
} 

Public Class Department 
{ 
    Public String DepartmentId {get;set;} 
    Public String DepartmentName {get;set;} 
    Public String Address {get;set;} 
} 

Public Class Address 
{ 
    Public String AddrOne {get;set;} 
    Public String City {get;set;} 
} 

Ich habe 3 Modelle, List, List und List Beitrag Durchführung des Verfahrens sollte oben genannten drei Modelle erhalten bevöl mit List, List und List und ich habe die Daten in folgenden Format zurückzukehren ...Wie konvertiert man die Liste <Model> in einen komplexen Antworttyp?

Was ist der beste Ansatz, um eine Antwort im unteren Format zu erhalten?

<Employees> 
<Employee> 
    <EmployeeID> </EmployeeID> 
    <EmployeeName> </EmployeeName> 
    <Department> 
    <DepartmentID>  </DepartmentID> 
    <DepartmentName>  </DepartmentName> 
    <Address> 
     <Addr1> </Addr1> 
      <City> </City> 
    </Address> 
    <Department> 
</Employee> 
</Employees> 
+1

[XML-Serialisierung] (https://msdn.microsoft.com/en-us/library/58a18dwa%28v=vs.110%29.aspx) – Kilazur

+0

@AfnanAhmad, ich bin jedoch Schleifen alle 3 Sammlungen (Mitarbeiter, Abteilung und Adresse) basierend auf ihrer Hierarchie und Erstellen der XML-Struktur. Ich glaube, es einen besseren Weg, dies zu tun ist ... aber haben keine Ahnung forrach (DataRow drEmp in ...) { xmlElement.Add (EmpID) xmlElement.Add (EmpName) forrach (DataRow drEmp in ...) \t { xmlElement.Add (DeptID) \t xmlElement.Add (DEPTNAME) \t forrach (DataRow drEmp in ...) \t { xmlElement.Add (Addr1) \t } } } – Amit

Antwort

0

XML-Serialisierung:

eine collection erstellen und fügen Methoden es serialisiert:

public class MyCollection 
{ 
    public List<Employee> = new List<Employee>(); 
    public List<Department> = new List<Department>(); 
    public List<Address> = new List<Address>(); 

    public string ToXML() 
    { 
     var stringwriter = new System.IO.StringWriter(); 
     var serializer = new XmlSerializer(this.GetType()); 
     serializer.Serialize(stringwriter, this); 
     return stringwriter.ToString(); 
    } 

    // You have to use your Class-Type here 3 times 
    public static MyCollection LoadFromXML(string filePath) 
    { 
     using (StreamReader streamReader = new System.IO.StreamReader(filePath)) 
     { 
      var serializer = new XmlSerializer(typeof(MyCollection)); 
      return serializer.Deserialize(streamReader) as MyCollection; 
     } 
    } 
} 

Jetzt können Sie Ihre Klasse als XML-Datei speichern:

 MyCollection myCollection = new MyCollection(); 
     //Now add your entries, myCollection.Add(new Department(....)); 

     //Save your class as xml-File 
     File.WriteAllText("C:\\MyClass.xml", myCollection.ToXML()); 

Und dann können Sie es laden:

EDIT: Changed es zu einem collection-Probe, die Ihre Situation

0

passen sollten Sie könnten die folgenden Klassen erstellen:

public class Model 
{ 
    public List<Employee> Employees { get; set; } 
} 

public class Employee 
{ 
    public string EmployeeId { get; set; } 
    public string EmployeeName { get; set; } 
    public Department Department { get; set; } 
} 

public class Department 
{ 
    public string DepartmentId { get; set; } 
    public string DepartmentName {get; set; } 
    public Address Address { get; set; } 
} 

public class Address 
{ 
    public string AddrOne { get; set; } 
    public string City { get; set; } 
} 

Weiter Sie eine Instanz des Modells erstellen und füllen mit Daten und serialisieren es als XML

Verwandte Themen