为了账号安全,请及时绑定邮箱和手机立即绑定

net core中 使用autofac,新版本 已经不支持

net core中 使用autofac,新版本 已经不支持

小唯快跑啊 2018-08-15 09:09:30
RT,老的 fw 项目迁移 core 2.1,其中有一个 Instance的实现类, 大概贴一下代码:var builder = new ContainerBuilder();ConfigurationSettingsReader reader = new ConfigurationSettingsReader("autofac");SectionHandler handler = reader.SectionHandler;var element = handler.Components.FirstOrDefault(item => item.Service.Contains(typeof(T).FullName));Autofac.IContainer container = null;T t;if (element == null)//配置文件中未配置,采用默认注册{  //此处省去一大段}else{    builder.RegisterType<T>();    builder.RegisterModule(reader);}container = builder.Build();t = container.Resolve<T>();return t; 泛型T是定义在类上边的 (public class Instance<T> where T : IService),大概意图就是,如果读取到配置文件中的匹配类型,那么就用配置文件的实现类去实例化对象并返回,否则就去根据各种类名什么的去按命名规则去拼出实现类。那么问题就是, 最新版本的Autofac 已经没有ConfigurationSettingsReader了,那么类似的方法要怎么实现,core 中 已经都是 json文件单独去定义 autofac的配置了, 或者说,我在startup 里边已经注入了实现,那么在这个工具类的程序集里边,怎么显示的去拿到 Resolve<T> 的对象呢? 这个写法是要怎么写,或者说 startup里的 container 在其他程序集中如何取到?
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

查看完整回答
反对 回复 2018-09-07
  • 1 回答
  • 0 关注
  • 891 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信