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

前端之家收集整理的这篇文章主要介绍了.net – 在WCF中有一种方法可以在程序集范围内设置ServiceContract命名空间吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在WCF中,您可以为具有[DataContract]的任何内容指定名称空间前缀,如下所示:
[DataContract(Namespace="MyApp")] public class whatever...

但是,如果要将程序命名空间应用于程序集范围内的所有数据协定,则可以使用ContractNamespaceAttribute

/* in AssemblyInfo.cs */
[assembly: ContractNamespace("MyApp",ClrNamespace = "MyApp")]

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

多数民众赞成,工作正常.现在,在ServiceContract方面,我可以在服务接口上执行相同的命名空间设置:

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

但是有没有类似于[assembly:ContractNamespace]的东西可以用来为所有[ServiceContract]设置命名空间?我真的很想避免为许多服务手动设置它,它很好地将它放在数据合同的一个位置.
由于数据协定有一个程序集级命名空间属性,我希望服务合同也有一个…

解决方法

不,您不能 – 您必须在WCF中非常明确,并且必须在每个ServiceContract上显式设置名称空间等内容.我甚至可能会在每一个DataContract上做这件事 – 只是为了清楚我正在做什么.

不过,这是件好事!明确也会使你的意图明确 – 相信我,在一个复杂的系统中,这有助于你!

猜你在找的HTML相关文章