小编Man*_*noj的帖子

在xml序列化期间忽略属性,但在反序列化期间不忽略

在C#中,如何在序列化期间使XmlSerializer忽略属性,而不是在反序列化期间忽略属性?(或者我如何对Json.net做同样的事情?)

要阻止属性序列化,可以添加XmlIgnore属性:

[XmlIgnore]
public int FooBar {get;set;}
Run Code Online (Sandbox Code Playgroud)

这将导致<FooBar>在序列化期间省略标记.

但是,这也意味着<FooBar>在反序列化期间将忽略标记.

在我的例子中,我在请求中接受来自用户的一系列项目,并且对于每个项目,如果用户想要添加,修改或删除项目,则可以指定动作属性.我想为GET列表调用使用相同的模型对象,并且不想返回此action属性.我希望这是一个很常见的情况.

另一个用例:说你有一个圆形对象

public class Circle
{
    public double Radius { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并修改它以添加直径属性

public class Circle2
{
    public double Diameter { get; set; }
    public double Radius { get { return Diameter / 2; } set { Diameter = value*2; } }
}
Run Code Online (Sandbox Code Playgroud)

您可能只想序列化直径,但仍能够以旧格式反序列化仅包含半径的xml文件.

我做了我的研究并没有找到任何东西,因此这个问题

解决方案:我找到了解决方案.我可以在此MSDN文档中添加一个始终返回false的ShouldSerialize属性

(如果重新打开此问题,可以将此解决方案添加为实际答案)

.net c# xml-serialization json.net deserialization

49
推荐指数
2
解决办法
4万
查看次数

Kafka是否支持安全通信?

我一直在阅读很多Apache Kafka文档,但我无法找到Kafka是否支持Producer-Brokers,Brokers-Consumers之间的安全通信,尤其是代理数据中心通信以进行代理复制.

apache-kafka

9
推荐指数
1
解决办法
7016
查看次数