FluentValidation With Autofac

本文关键字:Autofac With FluentValidation | 更新日期: 2023-09-27 18:04:38

我们刚刚开始使用FluentValidation,并遵循这篇文章允许我们使用我们的全球化值:http://fluentvalidation.codeplex.com/discussions/394471.

然而,我们被困在如何获得翻译服务接口的引用上,翻译服务封装了我们现有的全球化值。它包含在一个单独的项目中,不直接耦合到ASP。. NET MVC,所以我们不能使用DependencyResolver。

有没有人知道的方式,我们可以得到接口或autofacc容器到TranslationServiceStringSource类使用来获得翻译值?

FluentValidation With Autofac

我假设您在某个地方有一些类似的代码:

var container = builder.Build();
var resolver = new AutofacDependencyResolver(container);
DependencyResolver.SetResolver(resolver);

如果您将该引用存储到容器的某个地方,我通常在mvapplication类(global.asax.cs)中创建一个引用:

public static IContainer Container { get; set; }

那么你可以:

public TranslationServiceStringSource(string text) {
    _text = text;
    _translator = new MvcApplication.Container.Resolve<ITranslationService>(); 
}

虽然这将是很好的得到TranslationServiceStringSource由AutoFac管理。