Câu hỏi: Tôi sử dụng một lớp từ điển có thể tuần tự hóa, được tìm thấy tại http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx , để sắp xếp theo thứ tự từ điển. Hoạt động tốt, nhưng tôi gặp phải vấn đề khó chịu.Từ điển có thể tuần tự hóa, cách đặt tên khóa?
<System.Xml.Serialization.XmlRoot("DataBase")> _
Public Class cDataBase
<System.Xml.Serialization.XmlNamespaceDeclarations()> _
Public ns As New System.Xml.Serialization.XmlSerializerNamespaces()
<System.Xml.Serialization.XmlElement("Tables")> _
Public Tables1 As New SerializableDictionary(Of String, cTable)
End Class ' cDataBase
Khi tôi serialize thể hiện của lớp trên, vì điều này, xml tạo trông như thế này:
<Tables>
<item>
<key>
<string>MyTable</string>
</key>
<value>
<Table CreationDate="0001-01-01T00:00:00" LastModified="0001-01-01T00:00:00">
<Columns>
<Column Name="PrimaryKeyName">
<DataType>Uniqueidentifier</DataType>
<Length>36</Length>
</Column>
</Columns>
<Rows>
<Row>
<Item>Reihe1</Item>
<Item>Reihe2</Item>
<Item>Reihe3</Item>
</Row>
<Row>
<Item>Reihe1</Item>
<Item>Reihe2</Item>
<Item>Reihe3</Item>
</Row>
nào sẽ là tốt nếu duy nhất tôi có thể tìm ra cách để đổi tên chìa khóa từ < chuỗi > một cái gì đó được xác định trong một thuộc tính
<key>
<string>MyTable</string>
</key>
về cơ bản giống như XmlArrayItem thuộc tính, chẳng hạn như dưới đây, nếu (chỉ) vào từ điển là một mảng ...
<System.Xml.Serialization.XmlArray("Tables")> _
<System.Xml.Serialization.XmlArrayItem("Table")> _
Public Tables As New List(Of cTable)
tôi muốn cố gắng thay đổi Trong String để một lớp tùy chỉnh được thừa kế từ chuỗi, mà tôi có thể trang bị với một cái tên, nhưng vấn đề là, người ta không thể kế thừa từ chuỗi ...
Thứ nhất, tôi là giới hạn .NET 2.0, và thứ hai, vấn đề chính là từ điển là một kiểu generic và không serializable (không phải trong JSON hoặc là). Tôi đang tuần tự hóa thành XML vì XML được sử dụng rộng rãi hơn và tốt hơn để đọc, nếu được tuần tự hóa từ .NET 2.0. –