我正在尝试将Ninject与WPF一起使用
我的所有观点都有相同的界面
interface IView
{
string ViewName { get; }
object Content{ get; private set; }
}
public partial class FirstView : IView
{
......
}
public partial class SecundView : IView
{
......
}
等。
在应用程序启动时我使用
绑定它们Kernel.Bind<IView>().To<FirstView>();
Kernel.Bind<IView>().To<SecundView>();
........
........
我感兴趣的是有没有办法按惯例注册它们? 类似的东西:
.Kernel.Bind(
x => x.FromThisAssembly()
.SelectAllClasses().InNamespaceOf<FirstView>()
.BindToInterface<IView>);
答案 0 :(得分:2)
您可以使用BindDefaultInterfaces()
方法,该方法会将名称中包含View
字的每个类绑定到您的IView
界面:
.Kernel.Bind(
x => x.FromThisAssembly()
.SelectAllClasses().InNamespaceOf<FirstView>()
.BindDefaultInterfaces());
您还可以查看可用的“BindSomething”选项in the documentation。