0

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()); 

両方:

+0

UnityBootstrapperは分かりませんが、RegisterTypeIfMissingは最初のパラメータがクラスではなくインターフェイスであると考えています。あなたはIUnityContainerにアクセスし、登録のために通常のUnityメソッドを使用できますか? – ErnieL

答えて

0

私はユニティでシングルトンを登録するために使用する2つの方法がありますシングルトン

オブジェクトの構築方法を正確に制御したい場合は、RegisterInstanceを使用します。 2番目のオプションは私の好みのものです。なぜならUnityは私のためにすべての依存関係管理を行うからです。