【发布时间】:2020-05-28 13:59:58
【问题描述】:
我们使用SimpleInjector 作为依赖注入器,并且我们正在使用程序集迭代注册所有接口类型。
public static void RegisterInterfaceTypes(this Container container, Assembly assembly)
{
assembly.GetExportedTypes()
.Select(t => new {
Type = t,
Interface = t.GetInterfaces().FirstOrDefault()
})
.ToList()
.ForEach(t =>
{
container.Register(t.Interface, t.Type, Lifestyle.Transient);
});
}
我们也有惰性类要注册。我们可以像下面这样一一注册这些类。但是我们想使用反射注册所有具有相似迭代的惰性类型。
container.Register(() => new Lazy<ICommonBusiness>(container.GetInstance<CommonBusiness>));
【问题讨论】:
标签: c# .net reflection lazy-loading simple-injector