LHI,
我正在撰写WCF服务。 其中一个方法得到一个请求对象并返回一个响应对象。在请求中有几个值类型成员。
有没有办法以声明方式定义成员是强制性的? 我现在处于开发的早期阶段,我现在不想开始版本控制。另外我不想让方法sig包含25个参数,因此我创建了请求对象。
我遇到的问题是,由于值类型的原因,我永远无法确定服务的使用者是否打算在那里使用默认值,或者只是通过懒惰。 在消费者方面,你不会轻易发现你可能错过了这个属性。
所以我想有一些东西迫使服务的调用者提供一个值,如果不是,他理想地得到一个编译时错误。
任何想法?
TIA, 马丁
答案 0 :(得分:2)
是的,绝对:
[DataContract]
public class YourRequestClass
{
[DataMember(IsRequired=true)]
int RequestID { get; set; }
}
您可以使用DataMember
属性的多个子属性 - Order
和IsRequired
可能是最常用的属性。
答案 1 :(得分:1)
请检查以下内容是否可以解决您的问题:
DataMember上的IsRequired / EmitDefaultValue属性
http://social.msdn.microsoft.com/forums/en-US/wcf/thread/d9e45449-cc50-42e2-b955-75ab86f01d4f
上面的主题描述了一个组合
在请求成员上设置了IsRequired
和EmitDefaultValue
属性,根据讨论,至少有解决“问题”的接口
欢呼声