# WpfIocWindows **Repository Path**: forshia/wpf-ioc-windows ## Basic Information - **Project Name**: WpfIocWindows - **Description**: 为了解决桌面程序Ioc注入方式new一个窗口时无法使用无参构造函数的问题。 基于Ninject 实现 new 一个 WPF 窗口时使用无参构造函数实现 Ioc 注入。 - **Primary Language**: C# - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-01-11 - **Last Updated**: 2023-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IOCWindows 为了解决桌面程序Ioc注入方式new一个窗口时无法使用无参构造函数的问题。 基于Ninject 实现 new 一个 WPF 窗口时使用无参构造函数实现 Ioc 注入。 ## 用法 一、首先在Xaml文件中添加命名空间引用并将window改为IocWinow ```XAML ``` 二、窗口类继承IocWindow ```C# public partial class MainWindow : IocWindow { //其它代码略 } ``` 三、声明需要注入的成员 ```C# using Ninject; public partial class MainWindow : IocWindow { /* *1.声明私有成员变量 *2.要注入的成员必须添加Inject属性 * 如果不想添加Ninject命名空间,可以自己写个属性后修改IocWindow代码 *3.在窗口new的时候会在父类IocWindow的构造函数中为添加Inject属性 的私有成员进行注入 */ [Inject] ISay say; public MainWindow() { InitializeComponent(); } } ``` > 如果使用Ninject注入请在app.xaml.cs中调用register()方法,否则将没有任务内容可用于注入。