是否可以使用 DataMember 覆盖序列化的 属性 值
Is it possible to use DataMember to overwrite serialized property value
我一直在尝试序列化对象,我想知道您是否可以使用 DataMember
属性根据条件覆盖序列化值?例如,如果我在 class:
上有这个 属性
[DataMember]
public string Foo { get; set; }
并且我创建了 class 的一个实例,其中 Foo
设置为 IsFoo
,我是否可以使用 DataMember
属性对其进行序列化变成这样的东西:
<Foo>Bar</Foo>
请注意,这是一个假设性问题,在现实生活中这肯定是不好的做法或数据问题,但这有可能吗?
不你不能那样做。
[DataMember]
属性只告诉 WCF DataContractSerializer
将该值(在 属性 中)包含在 WCF 消息中 - 它不允许您更改过程中的值....
如果您需要在 WCF 消息中包含 Bar
,那么您必须在您的代码中设置 Foo = "Bar";
...
我一直在尝试序列化对象,我想知道您是否可以使用 DataMember
属性根据条件覆盖序列化值?例如,如果我在 class:
[DataMember]
public string Foo { get; set; }
并且我创建了 class 的一个实例,其中 Foo
设置为 IsFoo
,我是否可以使用 DataMember
属性对其进行序列化变成这样的东西:
<Foo>Bar</Foo>
请注意,这是一个假设性问题,在现实生活中这肯定是不好的做法或数据问题,但这有可能吗?
不你不能那样做。
[DataMember]
属性只告诉 WCF DataContractSerializer
将该值(在 属性 中)包含在 WCF 消息中 - 它不允许您更改过程中的值....
如果您需要在 WCF 消息中包含 Bar
,那么您必须在您的代码中设置 Foo = "Bar";
...