小编Pau*_*man的帖子

使用Unity Framework和验证应用程序块验证方法参数

Validation.Validate()验证应用程序块的方法是否可以将IParameterCollectionUnity提供的每个参数视为我的自定义UserModel


背景:

我试图使用Unity和验证应用程序块来验证方法参数.

我希望能够[RequiresValidation()]用适当的验证属性表示方法和该方法的参数.

所以,像这样:

[RequiresValidation()]
public void SaveUser(UserModel user)
{
  // ...
}

public class UserModel
{
  [StringLengthValidator(3, 255)]
  [RegexValidator(@"^[a-zA-Z0-9]${3,255}")]
  public string Name { get; set; }

  [StringLengthValidator(0, 255)]
  [RegexValidator(@"\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b")]
  public string EMail { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个自定义HandlerAttribute,它将启动对验证处理程序的调用,如图所示.

public class RequiresValidationAttribute : HandlerAttribute
{
  public override ICallHandler CreateHandler(IUnityContainer container)
  {
    return new ValidationCallHandler();
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,验证处理程序将尝试验证方法的每个参数:

public class ValidationCallHandler : ICallHandler
{
  public int Order { get; set; }

  public …
Run Code Online (Sandbox Code Playgroud)

c# validation enterprise-library unity-container validation-application-bl

6
推荐指数
1
解决办法
1642
查看次数

npm install只在包缺失或与package.json相比过期时才安装

我希望能够将我本地安装的软件包与我的项目package.json文件进行比较,而无需针对npm在线仓库进行调用.如果有一个包基于package.json文件已过期,那么它将转到npm online repo并安装该包.

这样做的原因是我希望能够更新package.json文件以要求更新版本的软件包,将此更改提交到项目仓库,当团队中的其他开发人员获得最新版本时,他们的npm软件包将更新.如果所有内容都是最新的,或者如果访问npm repo或互联网失败导致构建失败,我不想放慢流程.

我想知道这是否已经解决了用例,还是需要解析package.json文件并将其与"npm ls"输出进行比较?

npm

5
推荐指数
1
解决办法
2767
查看次数