.net 在WCF中,有没有一种方法可以在程序集范围内设置ServiceContract命名空间?

.net 在WCF中,有没有一种方法可以在程序集范围内设置ServiceContract命名空间?,.net,wcf,web-services,.net,Wcf,Web Services,在WCF land中,您可以为具有[DataContract]的任何内容指定名称空间前缀,如下所示: [DataContract(Namespace="MyApp")] public class whatever... 但是,如果要将公共命名空间应用于程序集范围内的所有数据协定,可以使用: 太好了,很好用。现在在ServiceContract端,我可以在服务接口上执行相同的命名空间设置: [ServiceContract(Namespace="MyApp")] public interface

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

[DataContract(Namespace="MyApp")] public class whatever...
但是,如果要将公共命名空间应用于程序集范围内的所有数据协定,可以使用:

太好了,很好用。现在在ServiceContract端,我可以在服务接口上执行相同的命名空间设置:

[ServiceContract(Namespace="MyApp")] public interface whateverService...
但是有没有类似于[assembly:ContractNamespace]的东西可以用来为所有[ServiceContract]设置名称空间?我真的不想为很多服务手动设置它,在数据契约中把它放在一个位置很好。
由于数据契约有一个程序集级别的名称空间属性,我希望服务契约也有一个名称空间属性…

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

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

马克

[ServiceContract(Namespace="MyApp")] public interface whateverService...