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);