在Autofac中如何获取注册组件的类型
2012-10-17 22:11
267 查看
假如这里我注册component:
后面我们想获取类型,可以这样
但是这样是先实例化了DeleteOrganization对象,然后再获取Type, 但是我们并不需要实例。如何做才能更有效率呢?
合理的做法是:
这里还可以使用KeyedService, 如果你想通过key来寻找注册的Component
和UniqueService, 需要一个GUID
builder.RegisterType<DeleteOrganization>().As<IDeleteOrganization>();
后面我们想获取类型,可以这样
container.Resolve<IDeleteOrganization>().GetType()
但是这样是先实例化了DeleteOrganization对象,然后再获取Type, 但是我们并不需要实例。如何做才能更有效率呢?
合理的做法是:
var registration = container.ComponentRegistry .RegistrationsFor(new TypedService(typeof (IDeleteOrganization))) .SingleOrDefault(); if (registration != null) { var activator = registration.Activator as ReflectionActivator; if (activator != null) { //这里的type就是我们想要得到的 var type = activator.LimitType } }
这里还可以使用KeyedService, 如果你想通过key来寻找注册的Component
和UniqueService, 需要一个GUID
相关文章推荐
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- Swift语言如何获取类型的大小?
- Android如何通过手机获取验证码来完成注册功能
- 如何获取Oracle存储过程中的参数名称、类型?
- Android如何根据资源路径Url获取Scheme类型
- 如何获取磁盘分区信息(包括卷标、序列号、类型、总大小、剩余大小)
- 如何获取SQL Server所有的数据库名、表名、字段名及字段类型?
- 获取各文件类型在系统中注册的图标
- [转]如何获取Untiy地形某一位置的贴图类型
- 如何通过后台代码获取map类型如下所示的数据:
- Java 运行时如何获取泛型参数的类型
- android如何简单便捷的获取图片类型信息
- 如何编写和注册.Net的Com组件