次のInitialize()メソッドを持つCustomersModule.csがあります。
public void Initialize()
{
container.RegisterType<ICustomersRepository, CustomersRepository>(new ContainerControlledLifetimeManager());
CustomersPresenter customersPresenter = this.container.Resolve<CustomersPresenter>();
}
コンテナから解決するクラスは次のようになります。
class CustomersPresenter
{
private CustomersView view;
private ICustomersRepository customersRespository;
public CustomersPresenter(CustomersView view,
ICustomersRepository customersRepository,
TestWhatever testWhatever)
{
this.view = view;
this.customersRespository = customersRepository;
}
}
TestWhateverクラスは、私が作成した単なるダミークラスです。
public class TestWhatever
{
public string Title { get; set; }
public TestWhatever()
{
Title = "this is the title";
}
}
それでも、私が登録したことがなくても、コンテナは問題なく解決 されます。また、コンテナはどういうわけかTestWhateverを見つけてインスタンス化し、に注入します。CustomersPresenter
CustomersPresenter
コンテナが非常に自動であると明示的に述べているPrismのドキュメントのどこにも見つからなかったので、これに気付いて非常に驚きました。
ですから、これは素晴らしいことですが、私が知らないコンテナは他に何をしているのでしょうか。つまり、私が知らない他に何ができるのでしょうか。たとえば、他のモジュールからクラスを注入できますか?モジュールがロードされた場合、コンテナはそれらを注入し、そうでない場合はnullを注入しますか?