重写 WCF DataMember 的字典构造函数

发布于 2024-10-16 20:02:45 字数 328 浏览 5 评论 0原文

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

例如:我想使用这个构造函数制作一个不区分大小写的字典,而不需要创建一个继承自Dictionary的新类。

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

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

Is it possible specify which constructor the WCF serialization engine uses when deserializing a data member?

For example: I want to use this constructor to make a case-insensitive dictionary without creating a new class that inherits from Dictionary.

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

dawn曙光 2024-10-23 20:02:45

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

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

If you provide an implementation of your property setter method, you can instantiate for yourself the new case-insensitive Dictionary instance which will be the value of the property, and just copy into it the items from the instance provided by the serializer as the value parameter.

You'll need to be prepared to handle any exceptions due to key clashes if the source of the serialized Dictionary was case-sensitive.

风月客 2024-10-23 20:02:45

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

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

Is it possible specify which constructor the WCF serialization engine uses when deserializing a data member?

No it isn't, unless you use implement your custom serialization.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文