gpt4 book ai didi

.net - 用于将属性序列化切换到 NetDataContractSerializer 的自定义属性

转载 作者:行者123 更新时间:2023-12-02 09:00:12 26 4
gpt4 key购买 nike

在 .NET 3.5 中,我想创建一个自定义属性(例如 [NetDataMember]),它将序列化行为从 DataContractSerializer 切换到 NetDataContractSerializer

基本上,对于A类,如下所示

[DataContract]
class A
{
[DataMember]
public int SimpleProperty { get; set; }

[Transcient]
public IBar ComplexProperty { get; set; }
}

我想获得一个默认情况下行为类似于 DataContractSerializer 的序列化程序,但对于标有 [NetDataMember]< 的属性,该序列化程序将被 NetDataContractSerializer 覆盖.

知道如何设计一个能够实现这种行为的序列化器吗?

最佳答案

WCF 中没有“开箱即用”的方法来做到这一点 - 但很多非常聪明的人已经解决了这个问题。

查看 Aaron Skonnard 的 blog post on the NetDataContractSerializer他在其中提出了一种行为,您可以将其作为属性添加到数据契约(Contract)中:

[NetDataContractFormat] 

在您的服务接口(interface)(对于所有方法)或单个方法上将使用 NetDataContractSerializer 进行该调用。您需要为每个操作或服务定义这一点 - 而不是在您的数据契约(Contract)上。

关于.net - 用于将属性序列化切换到 NetDataContractSerializer 的自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com