我们可以在WCF中没有datacontract的情况下进行操作合同吗?

时间:2012-10-24 22:02:05

标签: asp.net asp.net-mvc wcf wcf-data-services

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

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

感谢您的时间。

由于

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

我不确定你为什么会想要这个,但是如果你返回和/或传递的只是原语和nullables(字符串,日期,int等等)和Lists /数组,你赢了不需要创建任何数据合同。您要传递的任何结构化数据都需要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); 
}
相关问题