Windows フォーム アプリケーションで Unity DI を使用しています。これまでのところ、次のように program.cs のメイン フォームへの依存関係を解決しています。
static void Main()
{
IUnityContainer container = new UnityContainer();
container.AddNewExtensionIfNotPresent<EnterpriseLibraryCoreExtension>();
container.RegisterType<IAccountService, AccountService>();
container.RegisterType<IAccountRepository, AccountRepository>();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(container.Resolve <MainForm>());
}
私の問題は、MainForm が子フォームを作成しようとしたときです。
ChildForm childForm = new ChildForm();
childForm.Show();
コンストラクター インジェクションを使用しようとしていて、コンストラクター引数を渡していないため、エラーが発生します。[Dependency] 属性でセッター注入も試しましたが、それもうまくいきませんでした。どうすればこれを達成できますか? メイン フォームにすべての依存関係を持たせ、必要なオブジェクトを子フォームに渡すこともできますが、多くの子フォームを作成すると、メイン フォームが乱雑になります。