c# - 验证 C# 基类构造函数参数

标签 c# validation class parameters base

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

In externally visible method 'Identity.Identity(WindowsIdentity)', validate parameter 'windowsIdentity' before using it.

构造函数是:

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 的类型,但你明白了)

关于c# - 验证 C# 基类构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1923909/

相关文章:

c# - 在 Json.net 中使用自定义 JsonConverter 和 TypeNameHandling

c# - 将 Entity Framework 模型从 Web 项目移动到类库中

java - 验证 TableColumn 中 onEditCommit 中的可编辑单元格

json - 如何在 Haskell 中使用模式验证 JSON?

javascript - 使用 javascript 验证电子邮件和密码

javascript:类语法之前的类和获取方法

java - 为什么这个教科书程序无法识别我的 Point2D 对象?

c# - 结构图错误 : No Default Instance defined for PluginFamily

c# - 默认响应 Content-Type 有问题

c++ - 模板类方法声明失败