IoCContainer に登録されているサービスと MainVM のオブジェクトであるこの 2 番目のパラメーターに注入する MainViewModel から SecondViewModel をインスタンス化しようとしています。
コードは次のようなものです。
class MainViewModel
{
public MainViewModel()
{
}
private string message = "the message";
public string Message { get; set; }
}
class SecondViewModel
{
public SecondViewModel(IService service, string message)
{
}
}
これで、IoC コンテナーに SecondViewModelFactory (サービス インスタンスを運ぶ) を MainViewModel に挿入させることができるので、それを介して SVM を作成できることがわかりましたが、IService の実装が非常に重く、そうしたくない場合はどうでしょうインスタンス化しますが、本当に必要なときに。
同様の方法で他の ViewModel をインスタンス化する必要がある場合はどうすればよいでしょうか? 大量の VMFactories とコンストラクターのパラメーターを作成する必要がありますか?
また、汎用の ViewModelFactory を使用する場合は、作成するかどうかに関係なく、所有するすべての ViewModel に必要なすべてのサービスを渡してインスタンス化する必要があります。
私の場合のより良い解決策を知っていますか?
君たちありがとう