我试图在不同的程序集中分离我的模型、视图和视图模型,并用温莎城堡实例化它们。
我有我的 app.config
<components>
<component id="ViewModel.SomeViewModel" service="TEST.Business.IViewModel, TEST.Business" type="TEST.ViewModel.SomeViewModel, Test.ViewModel" />
<component id="ViewModel.SomeView" service="TEST.Business.IView, TEST.Business" type="TEST.View.SomeView, Test.View" />
</components>
并通过以下方式解决
IoC.Configure();
var viewModel = IoC.Resolve<IViewModel>();
var view = IoC.Resolve<IView>();
view.ShowDialog();
我的静态 IoC 类
public static class IoC
{
private static IWindsorContainer container;
public static void Configure()
{
IResource resource = new ConfigResource("castle");
container = new WindsorContainer(new XmlInterpreter(resource));
}
public static TService Resolve<TService>()
{
return container.Resolve<TService>();
}
}
直到现在真的很简单。
但我很想这样做:
命名必须是这样的:I[someName]ViewModel 和 I[someName]View 然后解析我的 app.config 中的每个组件,因此对于每对 View 和 ViewModel 解析并关联它们。
我想我的问题有很多解决方案,但我不知道要使用哪些关键字。
顺便说一句:I[someName]ViewModel 和 View 是 ofc IViewModels 和 IViews