UnityContainerに登録されているタイプの解決に問題があります。私のブートストラップでは、ConfigureContainerメソッドをオーバーロードしました。今、この方法は、私はこのUnityContainerがタイプを解決できません
var raeder = Container.TryResolve<CommandReaderWriter>();
は生憎、これはnull値を返しました、私はタイプCommandReaderWriterのインスタンスを取得したい(もbootstraperで)機能CreateShellで次にこの
protected override void ConfigureContainer()
{
base.ConfigureContainer();
RegisterTypeIfMissing(typeof(IView<ShellViewModel>), typeof(Shell), false);
RegisterTypeIfMissing(typeof(CommandReaderWriter), typeof(CommandReaderWriter), true);
}
のように見えます。私も試しました
var anotherReader = Container.TryResolve(typeof (CommandReaderWriter));
しかし、それはやっていませんでした。しかし、面白いのは、
var isRegistered = Container.IsTypeRegistered(typeof (CommandReaderWriter));
がtrueを返します。
UnityContainerにsingletoneを登録するにはどのような方法がありますか?これらのメソッドは、のためにUnityが、話しているContainerControlledLifeTimeManager、するユニティLifeTimeManagerを設定
_container.RegisterInstance<CommandReaderWriter>(new CommandReaderWriter);
と
_container.RegisterType<CommandReaderWriter,CommandReaderWriter>(new ContainerControlledLifetimeManager());
両方:
UnityBootstrapperは分かりませんが、RegisterTypeIfMissingは最初のパラメータがクラスではなくインターフェイスであると考えています。あなたはIUnityContainerにアクセスし、登録のために通常のUnityメソッドを使用できますか? – ErnieL