使用3个参数注册Generic类的方法是什么
public interface ITest<T,V,VE>
{
}
public class TestRespository<T,V,VE>:ITest<T,V,VE>
{
}
我已经注册了这个
services.AddScoped(typeof(ITest<,,>), typeof(ITest<,,>));
但无法进入构造函数以及
service.GetService(typeof(ITest<TestClass, vTestClass, VETestClass>)) as ITest<TestClass, vTestClass, VETestClass>;
答案 0 :(得分:4)
问题在于调用AddScoped()
方法。您应该在第二个参数中传递实现类型,而不是接口本身的类型:
services.AddScoped(typeof(ITest<,,>), typeof(TestRespository<,,>));
答案 1 :(得分:0)
services.AddScoped(typeof(ITest<,,>), typeof(ITest<,,>));
您需要implementation
和interface
而不是interface
两次。您正在将interface
注册为interface
,因此不能instantiated
。
services.AddScoped(typeof(ITest<,,>), typeof(TestRepository<,,>));
应该做的伎俩。