我的项目中有大量的程序集。
DataContract
。通常,其他WCF合同程序集引用了 Contract.Common 。按照一些最佳实践阅读更多WCF Architecture & Evoltion / Version,有一个静态类常量,如我的NamespacePrefix,我用于所有合同。
我第一次开发了一份独立于普通合同的新合同。我们称之为 Contract.NewStuff
按照规范,新合同在我的公共合同库中重用名称空间前缀常量(这意味着它需要引用它)。
对于我的webservice客户端,我引用我的合同程序集并使用它连接到各种web服务&调用它们。
Quesiton
由于 Contract.NewStuff 仅在编译时使用公共库作为常量(没有运行时程序集),如何阻止我的客户也必须引用我的合同。常见的汇编?
我理解我的普通合同只是一个20KB的汇编,我不应该担心。但是使用 Contract.NewStuff 的300,000多台机器,我不明白为什么我应该在发送该程序集时浪费资源,在将来的版本中更新它等等......
更新1
使用Add file as link选项。没有引用,单个位置来编辑常量。
答案 0 :(得分:0)
您可以将具有常量的类移动到新程序集,以便Contract.Common和Contract.NewStuff对其进行引用。我想你甚至可以在编译之后“用常量抛出汇编”,因为常量在C#编译时嵌入在IL代码中,并且每次在运行时需要时都不会从常量汇编中读取。
其他选项是将常量类“链接”到Contract.NewStuff程序集。在这种情况下,两个项目中都没有文件常量类重复。 Add File As Link