私有(private)字段的 C# DataContract 属性?

标签 c# datacontract

对于一个带有[DataContract]属性标记的类,其需要序列化的私有(private)字段是否标记为[DataMember]?

示例:

[DataContract]
public class Component
{

// [DataMember] is not needed since public fields get automatically serialized
public int number;

// do I need [DataMember] here?
private string characters;

// [DataMember] is required here, but I also need to include the 
// attribute [DataMember] in this class's definition
private complexType cT;

我正在阅读DataContractAttribute Class正确,对吧?

最佳答案

不,您似乎没有正确阅读文档。

数据契约是一种公开共享信息的方式,与常规序列化略有不同。

从您链接的文档页面:

The DataMemberAttribute attribute must then be applied to each member of the data contract type to indicate that it is a data member, that is, it should be serialized.

但这仅适用于您像以前一样添加 [DataContract] 属性的情况。

关于私有(private)字段的 C# DataContract 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883615/

相关文章:

c# - 仅显示 BenchmarkDotNet 的摘要部分

c# - 有没有办法从 DataContract 导出 XSD 架构

c# - 在 WCF 中使用自定义 DataContractResolver 来传输涉及泛型的继承树

.net - 紧凑型框架 3.5 是否支持 System.Runtime.Serialization?

c# - 没有 equals 方法 WCF 的代理类

c# - 在(反)序列化树中使用自己的 XmlSerializer 将已知类型列表传递给对象

c# - 当你知道它的类名(不是属性名)时设置 C# 属性值

c# - C# 有什么可以与 Python 的列表推导相媲美的吗?

c# - 如何从 Silverlight AutoCompleteBox 中获取所选项目?

c# - 文字换行字符