首页 > 解决方案 > 运算符“<”不能应用于“方法组”和“类型”类型的操作数

问题描述

我试图在循环中自动注册依赖注入的类,而不是手动注册。但是我使用的方法不是编译。

有效的方法:

containerBuilder.RegisterType<MyClass>().As<IMyClass>();

无法编译的方法:

List<Type> servicesList = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace.Services").Where(type => type.IsClass && !type.IsAbstract && !type.IsGenericType && !type.IsNested).ToList<Type>();
for (int i = 0; i < servicesList.Count; i++)
{
    containerBuilder.RegisterType<servicesList[i]>();
}

编译器抛出此错误消息:

Operator '<' cannot be applied to operands of type 'method group' and 'Type'

标签: c#.netapireflection.net-core

解决方案


您错误地使用了泛型参数。

您可以按类型注册

containerBuilder.RegisterType(servicesList[i]);

参考反射组件:按类型注册


推荐阅读