你的位置:首页 > 软件开发 > ASP.net > autofac 注入中i遇到的泛型传参问题

autofac 注入中i遇到的泛型传参问题

发布时间:2016-12-08 17:00:14
using Autofac;using IService;using System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Text;using ...
using Autofac;using IService;using System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;using TT.Service.Interface;using TT.Service.Realize;namespace InjectionServer{  public class Dependency  {    public static Assembly Assemblys { set; get; } = Assembly.Load("TT.Service");    static Dependency()    {      if (Builder == null)      {        Builder = new ContainerBuilder();//初始化容器        Builder.RegisterAssemblyTypes(Assemblys)        .Where(o => o != typeof(IRepository<>))        .AsImplementedInterfaces().PropertiesAutowired().InstancePerDependency();        InstanceContainer = Builder.Build();      }    }    public Dependency()    {      var type = this.GetType();      foreach (var item in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))      {        try        {          string key = "TT.Service.Interface." + $"I{item.Name.Replace("Example", "")}";          Type t = Assemblys.GetType(key);          var method = type.GetMethod("GetInstance", BindingFlags.Static | BindingFlags.NonPublic)                         .MakeGenericMethod(t);          item.SetValue(this, method.Invoke(null, null));        }        catch (Exception ex)        {          Console.WriteLine(ex.Message);        }      }    }    /// <summary>    /// 取出对象管理    /// </summary>    internal static IContainer InstanceContainer { get; set; }    /// <summary>    /// 注册对象管理    /// </summary>    internal static ContainerBuilder Builder { get; set; }    internal static T GetInstance<T>()      where T : class    {        var instance = InstanceContainer.Resolve<T>();        return instance;    }    internal static void Register<T, K>()        where T : class        where K : class    {      Builder.RegisterType<T>().As<K>().PropertiesAutowired().InstancePerDependency();    }    public IUsers UsersExample { set; get; }    public ITest TestExample { set; get; }  }}

原标题:autofac 注入中i遇到的泛型传参问题

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录