Wcf Datacontract与servicecontract的差异
据我所知- ServiceContract可用于接口/类,而DataContract b只能用于类、结构和枚举 除此之外,与这2项的其他区别是什么? 何时应在应用程序中使用DataContract和ServiceContract 任何样本或链接也可以。Wcf Datacontract与servicecontract的差异,wcf,Wcf,据我所知- ServiceContract可用于接口/类,而DataContract b只能用于类、结构和枚举 除此之外,与这2项的其他区别是什么? 何时应在应用程序中使用DataContract和ServiceContract 任何样本或链接也可以。 提前感谢。服务合同定义了服务合同的形式和形式。它定义了服务的名称、XML名称空间等,它通常是一个接口(但也可以应用于类),其中包含用[OperationContract]属性修饰的方法-服务方法 [ServiceContract] public
提前感谢。服务合同定义了服务合同的形式和形式。它定义了服务的名称、XML名称空间等,它通常是一个接口(但也可以应用于类),其中包含用
[OperationContract]
属性修饰的方法-服务方法
[ServiceContract]
public interface IMyService
{
[OperationContract]
Response GetData(int someKey);
}
DataContract是一个完全不同的beast-它修饰一个类,将其定义为一个用作参数或从其中一个服务方法返回值的类。它将该类标记为一个“东西”,以便序列化到线路上传输它。它是WCF运行时(数据协定序列化程序)的一条指令,该类将用于WCF服务
[DataContract]
public class Response
{
[DataMember]
int Key { get; set; }
[DataMember]
string ProductName { get; set; }
[DataMember]
DateTime DateOfPurchase { get; set; }
}
因此,服务契约和数据契约是两个完全独立的部分,它们共同发挥作用,使WCF服务发挥作用——这不是一个可以取代另一个或其他什么的。好吧!很遗憾我不是一名C#开发者!C#太棒了!你的解释太令人吃惊了!很好的解释!是否有任何特定情况下您会使用
[ServiceContract]
装饰类,或者建议仅将其用于接口?@AlexanderDerck:如果您有一个定义服务的接口(这是一个建议,而不是一个要求),那么[ServiceContract]
应该只在接口上。我在类上设置[ServiceContract]
的唯一原因是该类定义并实现了服务(没有单独的接口)