Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
C# 使用反射的统一寄存器类型_C#_Reflection_Ioc Container_Unity3d - Fatal编程技术网

C# 使用反射的统一寄存器类型

C# 使用反射的统一寄存器类型,c#,reflection,ioc-container,unity3d,C#,Reflection,Ioc Container,Unity3d,我正在努力做到以下几点: foreach (var item in Assembly.GetExecutingAssembly() .GetTypes() .Where(i => i.GetInterfaces() .Contains(typeof(ITabItem)))) { container.Regist

我正在努力做到以下几点:

foreach (var item in Assembly.GetExecutingAssembly()
                             .GetTypes()
                             .Where(i => i.GetInterfaces()
                             .Contains(typeof(ITabItem))))
{
    container.RegisterType<ITabItem, item>(nameof(item));
}

您需要使用非通用的
注册表类型
,它可能看起来像这样:

container.RegisterType(typeof(ITabItem), item, item.FullName);

我相信所提到的问题更深入到一般的泛型和反射中,但我的问题涉及一种特定于统一的方法,在这个问题中找不到我的特定于问题的答案。另一方面,下面的答案是正确的。所以我不相信我的问题是重复的。将此问题标记为重复可能会导致人们偏离下面的实际答案。。。
container.RegisterType(typeof(ITabItem), item, item.FullName);