gpt4 book ai didi

asp.net-mvc-3 - Ninject.MVC3 + FluentValidation + Factory 有人用过吗?

转载 作者:行者123 更新时间:2023-12-02 20:19:57 25 4
gpt4 key购买 nike

我对如何使用Ninject中的工厂有疑问和 FluentValidatior .

This article对我帮助很大,但我不明白如何使用工厂来实例化我的验证器:

我还发现了一些其他文章like this但使用 StructureMap!

按照我执行的步骤进行操作

  1. 已安装 NinjectFluentValidation通过 nuget
  2. 已安装 Ninject.Web.Mvc.FluentValidation对于工厂类
  3. 现在呢?

安装 Ninject 时,他在 App_Start 文件夹中创建了 NinjectMVC3.cs,因此我在 RegisterServices 方法中设置了依赖项:

kernel.Bind<IHumanValidator>().To<ReCaptchaValidate>().InRequestScope();

Global.asax中的Application_Start方法:

var ninjectValidatorFactory = new NinjectValidatorFactory(new StandardKernel());
ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(ninjectValidatorFactory));
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
FluentValidationModelValidatorProvider.Configure();

FluentValidator 我有:

public class RegisterCoupleValidator : AbstractValidator<RegisterCoupleModel>
{
public RegisterCoupleValidator()
{
RuleFor(p => p.HumanValidator).SetValidator(new HumanValidator());
}
}

HumanValidator.cs

public class HumanValidator : PropertyValidator
{
[Inject]
public IHumanValidator HumanValidate { get; set; }

public HumanValidator(IHumanValidator hValidator)
: this()
{
HumanValidate = hValidator;
}

public HumanValidator()
: base("Texto digitado está incorreto. Por favor, tente novamente.")
{ }

protected override bool IsValid(PropertyValidatorContext context)
{
return HumanValidate.IsValid();
}
}

我的问题

  1. 在具有工厂的 RegisterCoupleValidator 类中,如何没有验证器实例?具体在 new HumanValidator()

  2. HumanValidator 类中,HumanValidate 属性始终为 null,为什么?

<小时/>

Obs1:我不想实例化 FluentValidator 的这些验证器,我希望 Ninject 使用这个工厂为我解决依赖关系。

Obs2:我不必访问 Ninject 内核,因为我在几篇文章中读到这将是一个反伙伴。

最佳答案

看看this blog post 。这个人正在使用 NuGet 包通过 Ninject 设置 FluentValidation。它非常简单并且解释得很好。

关于asp.net-mvc-3 - Ninject.MVC3 + FluentValidation + Factory 有人用过吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com