Unity container 为一个类型注册多个混凝土:稍后查看名称
有没有办法查看Unity注册的名称Unity container 为一个类型注册多个混凝土:稍后查看名称,unity-container,Unity Container,有没有办法查看Unity注册的名称 // Create container and register types using a name for each one IUnityContainer myContainer = new UnityContainer(); myContainer.RegisterType<IMyService, DataService>("DataIsFun"); myContainer.RegisterType<IMyService, Loggi
// Create container and register types using a name for each one
IUnityContainer myContainer = new UnityContainer();
myContainer.RegisterType<IMyService, DataService>("DataIsFun");
myContainer.RegisterType<IMyService, LoggingService>("LoggingIsFun");
// Retrieve a list of non-default types registered for IMyService
// List will only contain the types DataService and LoggingService
IEnumerable<IMyService> serviceList = myContainer.ResolveAll<IMyService>();
上面的伪代码来自msdn
还有其他方法可以查看名称DataIsFun、LoggingIsFun吗?以下是一些查找名称的小程序 ContainerRegistration就是拥有这些信息的东西
IEnumerable<IMyService> myIServices = container.ResolveAll<IMyService>();
IEnumerable<ContainerRegistration> registrations = container.Registrations.Where(reg => reg.RegisteredType == typeof(IMyService));
ContainerRegistration foundContainerRegistration = container.Registrations.Where(reg => reg.RegisteredType == typeof(IMyService) && reg.MappedToType == typeof(DataService>).FirstOrDefault();
if(null!=foundContainerRegistration)
{
string x = foundContainerRegistration.Name;
}