Переопределить конструктор словаря для WCF DataMember - PullRequest
1 голос
/ 07 февраля 2011

Можно ли указать, какой конструктор использует механизм сериализации WCF при десериализации элемента данных?

Например: я хочу использовать этот конструктор для создания словаря без учета регистра без создания нового класса, который наследуется от Dictionary.

[DataMember]
Dictionary<string, string> Values { get; set; }

// Values should be created with this constructor
new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);

Ответы [ 2 ]

3 голосов
/ 08 февраля 2011

Если вы предоставляете реализацию метода установки свойств, вы можете создать для себя новый экземпляр словаря без учета регистра, который будет значением свойства, и просто скопировать в него элементы из экземпляра, предоставленного сериализатором, какпараметр value.

Вам необходимо быть готовым к обработке любых исключений из-за столкновений клавиш, если в источнике сериализованного словаря учитывается регистр.

2 голосов
/ 08 февраля 2011

Можно ли указать, какой конструктор использует механизм сериализации WCF при десериализации элемента данных?

Нет, если только вы не используете свою собственную сериализацию.

...