2009-01-29 6 views
3

Voici la structure des données mon objet devra exposer (les données ne sont pas vraiment stockées en XML, il était la meilleure façon d'illustrer la mise en page):Quelle structure de données .NET devrais-je utiliser?

<Department id="Accounting"> 
    <Employee id="1234">Joe Jones</Employee> 
    <Employee id="5678">Steve Smith</Employee> 
</Department> 
<Department id="Marketing"> 
    <Employee id="3223">Kate Connors</Employee> 
    <Employee id="3218">Noble Washington</Employee> 
    <Employee id="3233">James Thomas</Employee> 
</Department> 

Quand je désérialiser la données, comment dois-je l'exposer en termes de propriétés sur mon objet? Si c'était seulement Department et EmployeeID, je pense que j'utiliserais un dictionnaire. Mais j'ai aussi besoin d'associer le EmployeeName.

Répondre

7
Class Department 
    Public Id As Integer 
    Public Employees As List(Of Employee) 
End Class 

Class Employee 
    Public Id As Integer 
    Public Name As String 
End Class 

Quelque chose comme ça (je ne me souviens pas de ma syntaxe VB). Assurez-vous d'utiliser les propriétés contre les membres du public ...

+0

+1 qui, couplé avec une collection générique des départements –

+0

Id du Département doit être déclarée « comme String », point mineur. –

2
  • Un objet département
  • Un objet employé
  • Un objet employeeCollection. (facultatif, vous pouvez simplement utiliser List (of Employee))

Marquez-les tous comme sérialisables, puis vous pouvez les (dé) sérialiser au format de votre choix.

6

Classe Department (avec ID et Name), qui contient une collection d'objets Employee (ID et Name).

4
Public Class Employee 

    Private _id As Integer 
    Public Property EmployeeID() As Integer 
     Get 
      Return _id 
     End Get 
     Set(ByVal value As Integer) 
      _id = value 
     End Set 
    End Property 

    Private _name As String 
    Public Property Name() As String 
     Get 
      Return _name 
     End Get 
     Set(ByVal value As String) 
      _name = value 
     End Set 
    End Property 


End Class 

Public Class Department 

    Private _department As String 
    Public Property Department() As String 
     Get 
      Return _department 
     End Get 
     Set(ByVal value As String) 
      _department = value 
     End Set 
    End Property 

    Private _employees As List(Of Employee) 
    Public Property Employees() As List(Of Employee) 
     Get 
      Return _employees 
     End Get 
     Set(ByVal value As List(Of Employee)) 
      _employees = value 
     End Set 
    End Property 

End Class