C# Orchard将服务注入Automapper解析器
我想知道我们目前是否可以访问在应用程序生命周期内可用的autofac容器对象。我正在尝试为在Orchard内容类型之外设置的实体设置Automapper,但目前无法创建自定义类型解析程序,因为它们需要访问autofac容器 以下是我想做的:C# Orchard将服务注入Automapper解析器,c#,automapper,orchardcms,autofac,C#,Automapper,Orchardcms,Autofac,我想知道我们目前是否可以访问在应用程序生命周期内可用的autofac容器对象。我正在尝试为在Orchard内容类型之外设置的实体设置Automapper,但目前无法创建自定义类型解析程序,因为它们需要访问autofac容器 以下是我想做的: public class OrchardShellEvents : IOrchardShellEvents { public void Activated() { Mapper.Initial
public class OrchardShellEvents : IOrchardShellEvents
{
public void Activated()
{
Mapper.Initialize(x =>
{
x.ConstructServicesUsing(type => DependencyResolver.Current.GetService(type));
});
}
public void Terminating()
{
//do nothing
}
}
这将允许我使用autofac服务将依赖项注入automapper类型转换器,如下所示:
公共类PurchaserInfoConverter:ITypeConverter
{
私人只读电子储蓄(stateRepo);;
公共采购焦点转换方(IRepository stateRepo)
{
_stateRepo=stateRepo;
}
}
但不幸的是,我还没有弄清楚如何才能访问一个在应用程序生命周期内持续的容器对象。可以这样做吗?您能检查一下吗?是的,这对我不起作用,出于某种原因,它永远无法解析类型转换器:/
public PurchaserInfoRecord Convert(ResolutionContext context)
{
var viewModel = context.SourceValue as PurchaserInfoViewModel;
return new PurchaserInfoRecord
{
Address = viewModel.Address,
City = viewModel.City,
Company = viewModel.Company,
Address2 = viewModel.Address2,
Email = viewModel.Email,
FirstName = viewModel.FirstName,
LastName = viewModel.LastName,
Phone = viewModel.Phone,
State = viewModel.StateId.HasValue ? _stateRepo.Get(viewModel.StateId.Value) : null,
Zip = viewModel.Zip,
Fax = viewModel.Fax,
Title = viewModel.Title
};
}