public partial class App : Application
{
public static string ConnectionString { get; set; } = "Server=127.0.0.1;Database=test;Uid=root;Pwd=123456";
protected override async void OnStartup(StartupEventArgs e)
{
ContainerBuilder containerBuilder = new ContainerBuilder();
////注册普通类
//containerBuilder.RegisterType<XiaoMi>();
//可以基于容器来获取对象的实例
// XiaoMi phone = container.Resolve<XiaoMi>();
var freeSqlBuilder = new FreeSqlBuilder()
.UseConnectionString(DataType.MySql, ConnectionString)
.UseAutoSyncStructure(true)
.UseLazyLoading(false)
.UseNoneCommandParameter(true);
var fsql = freeSqlBuilder.Build();
containerBuilder.RegisterInstance<IFreeSql>(fsql);
//build一下,得到一个容器
//var container = containerBuilder.Build();
//IFreeSql sql = container.Resolve<IFreeSql>();
//var s= sql.Select<Phone>().Where(o => o.Id == 1).ToOne();
//MessageBox.Show(s.Name);
containerBuilder.RegisterType<Phone>();
var container = containerBuilder.Build();//创建容器完毕
// var dog = container.Resolve<IPhone>();//通过IOC容器创建对象
Test._icontainer = container;
}
}
Test类(容器)
public static class Test
{
public static IContainer _icontainer;
public static T Resolve<T>(){return _icontainer.Resolve<T>();}}
使用
public class MainViewModel
{
public ICommand AddCommand { get;}
//IContainer container;
public MainViewModel()
{
AddCommand = new RelayCommand(AddData);
}
public void AddData()
{
var dog = Test._icontainer.Resolve<IFreeSql>();//通过IOC容器创建对象
var a = dog.Select<Phone>().Where(p => p.Id == 1).ToOne();
//dog.Count++;
}
}