前言:
受 WTM 的影响,想自己尝试写一个自动生成WPF项目的代码生成器
本文主要用于介绍基础库中作者自定义的一些<基础服务>的使用。
作者的功底还不是很成熟,请大家多多包涵。
本基础库使用的IoC容器为自己写的,VampirewalIoC
通过使用特性标记,可实现类似MEF容器插件化开发的效果,需在配置文件中,配置好DLL路径,框架会在启动的时候加载对应DLL
[VampirewalIoCRegister("MainWindow1", RegisterType.Window)]//此处为注册 窗体
public partial class MainWindow1 : MainWindowBase
{
}
[VampirewalIoCRegister("MainViewModel2", RegisterType.ViewModel)] //此处为注册ViewModel
public class MainViewModel2 : BillVM<TestBillModel>
{
}
[VampirewalIoCRegister("MainWindow1", RegisterType.Window)]//此处为注册 窗体
public partial class MainWindow1 : MainWindowBase
{
[VampirewalIoCGetInstance("MainViewModel2")]//通过在token获取实例
public override ViewModelBase DataSource
{
get
{
return base.DataSource;
}
set
{
base.DataSource = value;
//DataContext = value;
}
}
}
//此处为注册服务,需在ViewModelLocator中使用
VampirewalIoC.GetInstance().RegisterService<IAppConfig, VampirewalConfig>();
//注册ViewModel
VampirewalIoC.GetInstance().Register<MainViewModel2>("MainViewModel2", RegisterType.ViewModel);
//注册泛型工厂类
VampirewalIoC.GetInstance().RegisterService(typeof(SqlSugarRepository<>), RegisterType.Factory);
VampirewalIoC.GetInstance().GetInstance<FrameworkElement>("aaView")
VampirewalIoC.GetInstance().GetInstance<MainViewModel2>();