Web Api メソッド内で依存性リゾルバーを使用しようとしています。これは正常に機能し、DepedencyResolver.GetService() を使用した従来の ASP.NET MVC でも正常に機能します。
しかし、これを WepApi メソッド内で機能させることはできません。
私の登録では、すべてのインスタンスを InstancePerApiRequest として登録します。WebAPIConroller のコンストラクターのブートストラップに登録したすべてのタイプのいずれかを追加すると、正常に注入されますが、内部で呼び出すと注入されなくなります。
私の言うGet Methodでこのように
var userRepository = (IUserRepositoryu)GlobalConfiguration
.Configuration.DependencyResolver.GetService(typeof(IUserRepository));
no scope WebRequest エラーが発生しました。奇妙なことは、すべてを GlobalConfiguration に変更する前に、ベータ版で問題なく機能していたことです。
私の質問は、以前のように webAPI の有効期間内で Autofac 登録済みアセンブリをアクティブ化するにはどうすればよいですか?
私のエラー:
「「AutofacWebRequest」に一致するタグを持つスコープは、インスタンスが要求されたスコープからは見えません。これは通常、HTTP ごとの要求として登録されたコンポーネントが、SingleInstance() コンポーネント (または同様のシナリオ) によって要求されていることを示しています。 Web 統合の下では、コンテナー自体からではなく、常に DependencyResolver.Current または ILifetimeScopeProvider.RequestLifetime から依存関係を要求します。"
var resolver = new AutofacWebApiDependencyResolver(container);
configuration.DependencyResolver = resolver;