0

サービスのコンストラクタインジェクションが1つある私のWebAPIプロジェクトには、コンフィグというクラスがあります。AutoFacを使用してジェネリックハンドラのクラスを登録して解決する

public class Config: IConfig 
{ 
    protected readonly IConfigService _configService; 
    public Config(IConfigService configService) 
    { 
     this._configService = configService; 
    } 
} 

イメージアップロードに使用される汎用ハンドラでこのConfigクラスを使用する必要があります。このConfigクラスをStartupクラスに登録してHandlerクラスで解決する手助けがありますか?私は通常の方法で試してみましたが、パラメータのないコンストラクタを取得するとエラーが見つかりました。

+0

// Set the dependency resolver to be Autofac. var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 

は、その後、あなたのHttpHandlerのコンストラクタでDependencyResolverクラスを使用します。ネットMVC? –

+0

[autofac - IHttpModuleへの依存性注入]の可能な複製(http://stackoverflow.com/questions/16803292/autofac-dependency-injection-into-ihttpmodule) – NightOwl888

答えて

1

ASP.netの内部設計の制約のため、汎用ハンドラでコンストラクタインジェクションを使用することはできません。スタートアップクラスで

DependencyResolverが定義されていることを確認:あなたはASPとジェネリックハンドラを持っていない理由

public class TestHandler : IHttpHandler 
{ 
    public TestHandler() 
    { 
     this._config = DependencyResolver.Current.GetService(typeof(IConfig)); 
    } 

    private readonly IConfig _config; 

    // implements IHttpHandler 
} 
関連する問題