我在一个项目中有一个wcf服务,一个对象模型在另一个项目中保存我的所有对象。我在服务项目中添加了对象模型的引用,并且能够在没有incedent的情况下使用我的服务中的对象。
当我发布服务时,其他用户使用它。他们能够输入无效的数据和架构,服务不会失败。
我需要将服务连接到对象模型。如果用户不遵守对象的架构,则服务应自动失败。
我不确定是否可能需要在web.config中设置配置?
我不理解的是,如果我将对象的属性设置为必需。如果用户没有将此属性添加到传递给服务的对象,为什么服务不会自动停止?
[DataMember(IsRequired = true)]
public string VendorName { get; set; }
答案 0 :(得分:2)
要根据其WSDL合同自动执行WCF验证,您可以将WsdlExporter
用作shared in this MSDN blog。
您可以使用WCF schema validation behavior extension。自定义BehaviorExtension
将允许您强制执行已定义架构的数据验证。
您还可以使用WCF parameter validation behavior extension来强制执行参数约束。
请参阅MSDN获取WCF Input/Data Validation FAQ。
同样review this great SO post关于为什么不执行WCF输入/数据验证。
Four Tenets of XML Messaging with WCF还提供了有关Schema验证的有趣视角。