服务契约定义了远程访问对象和可供调用的方法,数据契约则是服务端和客户端之间要传送的自定义数据类型。
一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送,如下所示。
[DataContract]
public class UserInfo
{
//….
}
只有声明为DataContract的类型的对象可以被传送,且只有成员属性会被传递,成员方法不会被传递。WCF对声明为DataContract的类型提供更加细节的控制,可以把一个成员排除在序列化范围以外,也就是说,客户端程序不会获得被排除在外的成员的任何信息,包括定义和数据。默认情况下,所有的成员属性都被排除在外,因此需要把每一个要传送的成员声明为DataMember,如下所示。
[DataContract]
public class UserInfo
{
[DataMember]
public string UserName
{
get;
set;
}
[DataMember]
public int Age<

本文介绍了C#中的数据契约(DataContract),它用于定义服务端和客户端之间交换的自定义数据类型。通过 `[DataContract]` 和 `[DataMember]` 特性,可以控制哪些成员在序列化过程中被传递。同时,文章还提到了如何自定义成员名称、命名空间,以及使用 `IsRequired`、`Order` 和 ` EmitDefaultValue` 等参数进行更精细的控制。此外,还提及了 `MessageContract` 用于创建SOAP消息的控制。
最低0.47元/天 解锁文章
1822

被折叠的 条评论
为什么被折叠?



