2016-11-18 2 views
0

、私はブートストラップでこのようでした:ナンシーDependencyResolver

var services = Assembly.Load("ProjectDomain"); 
builder.RegisterAssemblyTypes(services) 
    .AsClosedTypesOf(typeof(ICommandHandler<>)) 
    .InstancePerRequest(); 
builder.RegisterAssemblyTypes(services) 
    .AsClosedTypesOf(typeof(IValidationHandler<>)) 
    .InstancePerRequest(); 

が、それは動作しません.....

ICommandHandler<TCommand> handler = 
    DependencyResolver.Current.GetService<ICommandHandler<TCommand>>(); 

ハンドラがnullであります!それを修正する方法は?助けてくれてありがとう...

+0

私はナンシーは、モジュールまたは他の注入されたクラスでそれを行う必要があるでしょう、あなたの注入されたサービスにアクセスするためには、サービスロケータパターンで動作するとは思いません... –

答えて

0

私はAsSelf(これはデフォルトのオートファックの振る舞いです)を登録していると思います。これを試してもよろしいですか?

builder.RegisterAssemblyTypes(services) 
    .AsClosedTypesOf(typeof(ICommandHandler<>)) 
    .AsImplementedInterface() 
    .InstancePerRequest(); 
関連する問題