我可以强制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’中的类. 选项: >有不同的组件(使部署更难,构建需要更长时间) 有没有人有任何其他想法? 解决方法
考虑使用
Obsolete attribute标记类.这将导致任何本身不标记为“已过时”的代码在编译期间生成警告.
在项目文件的“构建”选项卡上启用“将警告视为错误”设置,以使此警告无法通过编译而无法编译. 编辑: 同意单独的程序集是一个很好的策略,可以帮助淡出这段代码.这不会阻止人们提到它.过时的属性清楚地表明这个代码已经过时了. 编辑#2: 感谢Dan Tao指出了Obsolete属性的overloaded constructor.这意味着您可以强制是否应将某事物的使用视为错误,而不必将处理警告视为错误.还有用的是指定指示用户解决方法的消息的选项.编译期间在错误/警告中显示此消息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |