Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity container 为一个类型注册多个混凝土:稍后查看名称_Unity Container - Fatal编程技术网

Unity container 为一个类型注册多个混凝土:稍后查看名称

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

有没有办法查看Unity注册的名称

// 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;
}