リポジトリから取得する Wallet クラスがあります。ウォレットを使用するクラスに適切なインスタンスが注入されるように、両方を Autofac に適切に登録しようとしています。問題は、リポジトリが非同期メソッド (タスクを返す) を使用していることです。Autofac はそのようなケースをサポートしていますか?
これは機能しません:
cb.RegisterType<WalletRepository>()
.As<IWalletRepository>()
.SingleInstance();
cb.Register(async c => await c.Resolve<IWalletRepository>().CreateAsync(App.WalletPath));
cb.RegisterType<ViewModel>()
.AsSelf().
.SingleInstance();
私が持っているアプリのどこかに:
class ViewModel
{
public ViewModel(Wallet wallet)
{
//nothing fancy here
}
}
呼び出すcontainer.Resolve<ViewModel>()
と、ウォレットが登録されていないという例外が発生します。