需要在C#中实例化一个类?

Nea*_*eal 6 .net c# security language-design

为了安全起见,我们需要"保护"类没有静态方法.我们不希望新手开发人员遵循编码工具的建议来使成员静态,因为我们需要使用带密码的构造函数来控制对此类的访问.

有没有办法保护C#中的.NET类,以防止它有任何静态成员?

对于未来的.NET版本,如果没有这样的功能是否值得?

谢谢.

Eri*_*ert 28

我们需要使用带密码的构造函数来控制对此类的访问.

这听起来像是一个非常糟糕的主意,但当然我对你要解决的安全问题一无所知.这是一个比你的问题更有趣的问题:你试图保护的威胁是什么?可能有更好的方法.

有没有办法保护C#中的.NET类,以防止它有任何静态成员?

让高级开发人员审查初级开发人员的签到.无论如何你应该做什么,但特别是如果类有某种安全语义.

对于未来的.NET版本,如果没有这样的功能是否值得?

这不太可能.

谢谢.

别客气!

  • @Neal:"访问项目"不是威胁.假设我告诉你"我想阻止进入我的房子".好的,这是一个明智的想法,但*威胁是什么*?"我想阻止进入我的房子,因为我害怕有人会偷我的电视"与"我想阻止进入我的房子是非常不同的,因为我担心有人会在地下室放炸弹".您设计安全系统以缓解这些威胁的方式是不同的. (4认同)
  • 把想法从脑中偷走了. (3认同)
  • @SimpleCoder:当有人感谢我时,我母亲教我说. (2认同)

Dan*_*gby 9

最简单的方法是在构建服务器上设置FxCop并编写自定义FxCop规则以检查静态成员.

此问题详细说明了如何编写自定义FxCop规则.


或者,正如SimpleCoder所指出的,您可以使用StyleCop来强制执行源代码规则.

本页介绍如何使用msbuild设置StyleCop.


Chr*_*nte 8

您可以使用StyleCop来强制执行自定义规则.但是,它必须作为构建操作实现.

或者,您可以使用FxCop来分析二进制文件.