【发布时间】:2018-08-16 22:55:57
【问题描述】:
示例:我的同事应该不再使用Microsoft.VisualBasic.Collection,我希望构建过程应该将它们指向替换类型。这听起来像是ObsoleteAttribute 的情况,只是我无法在Microsoft.VisualBasic.Collection 中设置属性。有没有办法实现这样的事情(淘汰/禁止某些项目的框架类型或成员)而不诉诸丑陋的黑客。
如果没有,有什么技巧?
更新:Visual Studio 2017 CE
【问题讨论】:
-
看看代码分析器:github.com/dotnet/roslyn/wiki/…
-
是的,我见过他们。但是对于已经存在的东西(贬低一种类型),它看起来需要做很多工作。
-
...但是 AFAIK 这是在不破坏框架程序集的情况下做到这一点的方法,因为您不能“从外部添加属性”。仅添加属性的“包装器类型”在您的情况下也无济于事,因为您的同事不会使用包装器类型。而且您应该能够使用上面链接中的大部分样板代码,并且只实现实际的“类型检查和警告”,这应该将工作量保持在最低限度。将其视为一个很好的编码练习来学习新东西;-)...(如果您实施它,请与我们分享一个可行的解决方案)
-
你也可以使用已经替代FxCop的代码分析工具:docs.microsoft.com/en-gb/visualstudio/code-quality/…
-
“我希望构建过程应该将它们指向替换类型。” - 这是绝对要求吗?如果没有,我可以发布一个 hack 解决方案以使构建失败。
标签: c# .net vb.net visual-studio obsolete