我正在尝试执行以下操作:
foreach (var item in Assembly.GetExecutingAssembly()
.GetTypes()
.Where(i => i.GetInterfaces()
.Contains(typeof(ITabItem))))
{
container.RegisterType<ITabItem, item>(nameof(item));
}
但是我在
item
方法中的RegisterType
上收到此错误:错误CS0118“项目”是变量,但其用法类似于类型
我知道我要传递一个对象类型,但是如何解决呢?
编辑:这是一种非动态方式。
container.RegisterType<ITabItem, AdminViewModel>(nameof(AdminViewModel));
container.RegisterType<ITabItem, OwnerViewModel>(nameof(OwnerViewModel));
最佳答案
您需要使用非通用RegisterType
,它可能看起来像这样:
container.RegisterType(typeof(ITabItem), item, item.FullName);