Gar*_*wen 3 c# class-design namespaces
我可以限制特定命名空间中的类引用另一个特定命名空间中的类吗?两个名称空间都存在于同一.NET程序集中.
例:
namespace LegacyCode
{
class LegacyClass { ... }
}
namespace NewCode
{
class NewClass {...}
}
Run Code Online (Sandbox Code Playgroud)
我不希望'NewCode'中的类能够引用'LegacyCode'中的类.
选项:
有没有人有任何其他想法?
MPr*_*ard 10
考虑使用Obsolete属性标记类.这将导致任何本身未标记为"已过时"的代码在编译期间生成警告.
在项目文件的"构建"选项卡上启用"将警告视为错误"设置,以使此警告无法通过编译而无法编译.
编辑:
同意单独的程序集是一个很好的策略,可以帮助淡出这段代码.这不会阻止人们提到它.过时的属性清楚地表明这个代码已经过时了.
编辑#2:
感谢Dan Tao指出了Obsolete属性的重载构造函数.这意味着您可以强制是否应将某事物的使用视为错误,而不必将处理警告视为错误.还有用的是指定指示用户解决方法的消息的选项.编译期间在错误/警告中显示此消息.
记录设计,与人交谈,审查代码.不要试图将技术抛给人们的问题.(不过,使用像NDetect这样的工具,评论部分可以变得更有效.)
如果您确实需要隔离设计更改,请选择单独的程序集:这是预期的设计机制.但请确保您对接口和实现都有合理的版本控制方案.
归档时间: |
|
查看次数: |
315 次 |
最近记录: |