Tôi đang tuần tự hóa từ điển thành XML. Khi tôi tạo ra một từ điển mới tôi sử dụng các nhà xây dựng để cung cấp EqualityComparer không vỏ ví dụSerializing Dictionary <string, object> khi từ điển được khởi tạo với so sánh chuỗi không phân biệt chữ hoa chữ thường
var tabs = new Dictionary<string,Tab>(StringComparer.OrdinalIgnoreCase);
sau đó tôi serialize đến XML và khi tôi deserialize thông tin về vỏ bị mất - deserialization được thực hiện cho các từ điển với GenericEqualityComparer, mà rõ ràng là trường hợp nhạy cảm, bởi vì nó không tìm thấy chìa khóa của tôi nếu họ không phải là cased một cách chính xác.
Mọi ý tưởng làm cách nào để thay đổi?
Có một cách để tạo một từ điển mới và sao chép dữ liệu từ phần được định hướng lại sang từ mới nhưng điều này có vẻ phiền hà.
UPDATE:
Các deserialization làm việc toàn bộ thời gian nó chỉ là rằng nó deserializes Từ điển serialized một mà không sử dụng trường hợp phím không nhạy cảm.
Liệu vấn đề này xảy ra khi bạn sử dụng DataContract? –
có, lớp có chứa thuộc tính kiểu Từ điển được đánh dấu là DataContract và thuộc tính này được đánh dấu là DataMbember, nếu đó là những gì bạn muốn biết –
mare
Có, nhưng bây giờ bạn đã tìm ra rằng nó hoạt động trong .NET 4.0, không có gì để tôi theo dõi. Chúc mừng bạn đã giải quyết được vấn đề của mình. –