.net - 在 WCF 中有没有办法在程序集范围内设置 ServiceContract 命名空间?

标签 .net wcf web-services

在 WCF 领域,您可以为任何具有 [DataContract] 的内容指定命名空间前缀,如下所示:

[DataContract(Namespace="MyApp")] public class whatever...

但是,如果您想将公共(public)命名空间应用于程序集范围内的所有数据协定,您可以使用 ContractNamespaceAttribute :
/* in AssemblyInfo.cs */
[assembly: ContractNamespace("MyApp", ClrNamespace = "MyApp")]

/* in whatever.cs */
[DataContract] public class whatever...

太好了,工作正常。现在在 ServiceContract 方面,我可以在服务接口(interface)上进行相同的命名空间设置:
[ServiceContract(Namespace="MyApp")] public interface whateverService...

但是是否有与 [assembly: ContractNamespace] 类似的东西可以用来为所有 [ServiceContract] 设置命名空间?我真的很想避免为许多服务手动设置它,很高兴将它放在数据契约(Contract)的一个地方。
由于数据契约(Contract)有一个程序集级命名空间属性,我希望服务契约(Contract)也有一个......

最佳答案

不,你不能——你必须在 WCF 中非常明确,并且必须在每个 ServiceContract 上明确设置命名空间之类的东西。我什至可能会在每一个 DataContract 上都这样做——只是为了清楚我在做什么。

不过,这是一件好事!明确也会让你的意图变得清晰——相信我,在一个复杂的系统中,这会有所帮助!

马克

关于.net - 在 WCF 中有没有办法在程序集范围内设置 ServiceContract 命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296073/

相关文章:

c# - 从调整大小的图像中翻译/检测图像的矩形部分

javascript - 如何将访问 token 从 .NET(代码隐藏)传递到 Javascript

c# - 在 .NET 中验证 Mandrill 入站 Webhook 请求

.net - 如何使用基于HttpClient和.net4的Rest-client进行身份验证

c# - 达到 295 个字符时,Restful 帖子会抛出 400 个无效网址

java - 通过查询字符串的 REST api

c# - 是否具有虚拟成员的对象类?

.net - COM/.NET 接口(interface)名称中的非字母数字字符

c# - 将 protobuf-net 与 WCF 和 Silverlight 结合使用

java - 无法使用从浏览器发布的 Base 64 编码字符串创建图像