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 回答
- 0 关注
- 898 浏览
添加回答
举报
0/150
提交
取消