当我们创建WCF服务时,我们有SrviceContract(接口),OperationCOntract(方法)和DataContract(类类型)。
我想知道我们是否可以在没有DataContract的情况下使用OperationContract。如果是,任何示例都会有很大帮助。
感谢您的时间。
由于
答案 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);
}