Request对象(WCF)中的强制参数

时间:2010-05-21 08:35:16

标签: wcf parameters

LHI,

我正在撰写WCF服务。 其中一个方法得到一个请求对象并返回一个响应对象。在请求中有几个值类型成员。

有没有办法以声明方式定义成员是强制性的? 我现在处于开发的早期阶段,我现在不想开始版本控制。另外我不想让方法sig包含25个参数,因此我创建了请求对象。

我遇到的问题是,由于值类型的原因,我永远无法确定服务的使用者是否打算在那里使用默认值,或者只是通过懒惰。 在消费者方面,你不会轻易发现你可能错过了这个属性。

所以我想有一些东西迫使服务的调用者提供一个值,如果不是,他理想地得到一个编译时错误。

任何想法?

TIA, 马丁

2 个答案:

答案 0 :(得分:2)

是的,绝对:

[DataContract]
public class YourRequestClass
{
   [DataMember(IsRequired=true)]
   int RequestID { get; set; }

}

您可以使用DataMember属性的多个子属性 - OrderIsRequired可能是最常用的属性。

答案 1 :(得分:1)

请检查以下内容是否可以解决您的问题:

DataMember上的IsRequired / EmitDefaultValue属性

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/d9e45449-cc50-42e2-b955-75ab86f01d4f

上面的主题描述了一个组合 在请求成员上设置了IsRequiredEmitDefaultValue属性,根据讨论,至少有解决“问题”的接口

欢呼声