1

我试图阻止其他程序员使用特定的类(作为最佳实践,并考虑替代方案)。

更具体地说,我正在尝试强制使用 WebClient 或 HttpRequest,而不是 WebBrowser,因为存在许多与 WebBrowser 使用相关的错误,这些错误可能会导致打开的线程或消息循环并让应用程序挂起,所以它不会结束/出口。

WebBrowser的重量更重,

我知道可以通过锁定来做到这一点

lock (typeof(System.Windows.Forms.WebBrowser))
{
}

但这有很多缺点。

是否可以在 C# 项目或文件或解决方案中阻止使用特定类(如 WebBrowser)?

使用编译指示的警告会更好

#warning Please avoid using WebBrowser, consider WebClient

阻止命名空间的解决方案是一种选择,但只能作为最后的手段

4

2 回答 2

1

您应该考虑创建自己的编码规则集,该规则集会在使用 WebBrowser 类时发出警告。

于 2013-06-06T07:50:25.903 回答
0

只需使用您传递参考的类型检查方法:

 if(someobject is (System.Windows.Forms.WebBrowser))
 { 
   throw new ArgumentException("Don't use web browser here naughty programmer");
 }

对于 lock 语句,我建议阅读(请不要以您认为的方式使用它):

http://msdn.microsoft.com/en-us/library/c5kehkcz.aspx

于 2013-06-06T07:51:25.273 回答