在VS2010 beta版(以前版本的FxCop)中运行代码分析后,出现以下警告:



构造函数是:

public Identity(WindowsIdentity windowsIdentity)
         : base(windowsIdentity.Token)
{
         init();
}

对于定义为的类:
public class Identity : WindowsIdentity

我的问题是,如何验证windowsIdentity参数?我应该在构造函数中验证它并引发异常,还是有更好的方法来调用此方法?

最佳答案

您可以使用静态方法对其进行验证:

public Identity(WindowsIdentity windowsIdentity)
         : base(GetToken(windowsIdentity))
{
         init();
}

static Token GetToken(WindowsIdentity ident)
{
    if(ident == null)
        throw new ArgumentNullException("ident");

    return ident.Token;
}

(我不必费心寻找WindowsIdentity.Token的类型,但是您知道了)

09-17 07:53