加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我可以强制C#中的命名空间之间的依赖关系

发布时间:2020-12-15 20:05:09 所属栏目:百科 来源:网络整理
导读:我可以限制特定命名空间中的类引用另一个特定命名空间中的类吗?两个名称空间都存在于同一.NET程序集中. 例: namespace LegacyCode{ class LegacyClass { ... }}namespace NewCode{ class NewClass {...}} 我不希望’NewCode’中的类能够引用’LegacyCode’
我可以限制特定命名空间中的类引用另一个特定命名空间中的类吗?两个名称空间都存在于同一.NET程序集中.

例:

namespace LegacyCode
{
    class LegacyClass { ... }
}

namespace NewCode
{
    class NewClass {...}
}

我不希望’NewCode’中的类能够引用’LegacyCode’中的类.

选项:

>有不同的组件(使部署更难,构建需要更长时间)
>使用像NDetect这样的工具(花钱!)

有没有人有任何其他想法?

解决方法

考虑使用 Obsolete attribute标记类.这将导致任何本身不标记为“已过时”的代码在编译期间生成警告.

在项目文件的“构建”选项卡上启用“将警告视为错误”设置,以使此警告无法通过编译而无法编译.

编辑:

同意单独的程序集是一个很好的策略,可以帮助淡出这段代码.这不会阻止人们提到它.过时的属性清楚地表明这个代码已经过时了.

编辑#2:

感谢Dan Tao指出了Obsolete属性的overloaded constructor.这意味着您可以强制是否应将某事物的使用视为错误,而不必将处理警告视为错误.还有用的是指定指示用户解决方法的消息的选项.编译期间在错误/警告中显示此消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读