在查看各种示例以及创建WCF服务的方法时,我注意到有些人使用属性修饰接口代码,而其他人则修饰了implmentation代码。我理解使用[ServiceContract]来装饰界面,但是[WebGet]或[WebInvoke]或[AspNetCompatibilityRequirements]等适当的位置在哪里?
答案 0 :(得分:2)
由于您正在编写类定义,因此最好将它们放在与实现它们的类相同的文件中。将它们放在界面上使得很难记住如何使用该方法。有了类和方法实现,你就不会忘记!
答案 1 :(得分:2)
大多数属性的正确位置不是开发人员,而是由WCF文档指定。请参阅这些页面中的示例以了解正确的属性用法。
WebGet - 界面,操作合同: http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webgetattribute.aspx
WebInvoke - 界面,操作合同: http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webinvokeattribute.aspx
AspNetCompatibilityRequirements - 服务实施: http://msdn.microsoft.com/en-us/library/system.servicemodel.activation.aspnetcompatibilityrequirementsattribute.aspx