覆盖WCF DataMember的字典构造函数

时间:2011-02-07 18:38:18

标签: c# wcf serialization datacontract

在反序列化数据成员时是否可以指定WCF序列化引擎使用哪个构造函数?

例如:我想使用此构造函数创建不区分大小写的字典,而不创建从Dictionary继承的新类。

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

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

2 个答案:

答案 0 :(得分:3)

如果提供属性setter方法的实现,则可以自己实例化新的不区分大小写的Dictionary实例,该实例将是属性的值,并且只是将序列化程序提供的实例中的项目复制到其中。 value参数。

如果序列化词典的来源区分大小写,您需要准备好处理因键冲突而导致的任何异常。

答案 1 :(得分:2)

  

在反序列化数据成员时是否可以指定WCF序列化引擎使用哪个构造函数?

不,不,除非您使用实现自定义序列化。