0

当我们创建 WCF 服务时,我们有 SrviceContract(接口)、OperationContract(方法)和 DataContract(类类型)。

我想知道我们是否可以在没有 DataContract 的情况下拥有 OperationContract。如果是,任何示例都会有很大帮助。

珍惜你的时间。

谢谢

4

2 回答 2

3

DataContract属性仅表示将在您的服务中的签名中使用的类。因此,如果您的服务不需要引用您的任何类,那么您将不会在DataContract任何地方拥有属性。

例如,如果您只有接受和返回原始类型(如字符串或数字)的方法,那么您不必定义任何自己的类。

于 2012-10-24T22:10:54.623 回答
3

我不知道你为什么想要这个,但如果你只返回和/或传递原语和可空值(字符串、日期、int?s 等)和相同的列表/数组,你就不需要创建任何数据合同。您要传递的任何结构化数据都需要 DataContract 属性,否则将引发异常。

所以,一些可行的例子是......

[ServiceContract]
public interface ISimpleContract
{
    [OperationContract] void DoSomething();
    [OperationContract] int GetNumber();
    [OperationContract] string GetStatus(int userId);
    [OperationContract] string[] GetCodes(int? byDepartment);
    [OperationContract] List<int> GetNumberOfStrings(string[] strings); 
}
于 2012-10-24T22:13:17.460 回答