Autofac依赖注入

20220708注入学习

注入类

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++;
    }

}    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值