我尝试使用泛型接口注入一个包含泛型方法的类。从示意图上看,
public interface IInterface<T>
{
public List<ClassC<T>> Method(List<ClassC<T>> list);
}
public class ClassA : IInterface<ClassB>
{
List<ClassC<ClassB>> inList = ...;
List<ClassC<ClassB>> outList = Method(List < ClassC < ClassB >> inList);
{
return inList;
}
}
在Startup.cs中,
public delegate IInterface<T> Resolver(Type key);
builder.Services.AddTransient<Resolver>(serviceProvider => key =>
{
switch (key)
{
case ClassB:
return serviceProvider.GetService<ClassA>();
default:
throw new Exception;
}
});
然而,这并不起作用,因为C#在运行Startup.cs时不知道运行时是什么。我的目标是能够在不同的控制器中使用泛型方法Method()的不同定义。有没有一种方法可以使用依赖注入或其他方法来实现这一点?
1条答案
按热度按时间mwngjboj1#
以下各项应该可以正常工作:
然后你可以将以下内容注入一个类:
它是具体的类型,如果你检查,将确实由
ClassA