C# 在.NET Core DI中,是否有方法获取正在解析的类型?
我正在实际使用Microsoft.Extensions.DependencyInjection库(.NET Core 3.1),并试图找到一种基于正在解析的类型创建实例的方法C# 在.NET Core DI中,是否有方法获取正在解析的类型?,c#,asp.net-core,dependency-injection,asp.net-core-3.1,.net-core-3.1,C#,Asp.net Core,Dependency Injection,Asp.net Core 3.1,.net Core 3.1,我正在实际使用Microsoft.Extensions.DependencyInjection库(.NET Core 3.1),并试图找到一种基于正在解析的类型创建实例的方法 说明,让我们考虑下面的类、接口和主: interface ISomeService { } class SomeService1 : ISomeService { } class SomeService2 : ISomeService { } class SomeTypeBeingResolvedA { pu
说明,让我们考虑下面的类、接口和主:
interface ISomeService
{
}
class SomeService1 : ISomeService
{
}
class SomeService2 : ISomeService
{
}
class SomeTypeBeingResolvedA
{
public SomeTypeBeingResolvedA(ISomeService someService)
{
}
}
class SomeTypeBeingResolvedB
{
public SomeTypeBeingResolvedB(ISomeService someService)
{
}
}
static void Main(string[] args)
{
var serviceCollection = new ServiceCollection();
serviceCollection.AddTransient<ISomeService>((IServiceProvider provider) =>
{
Type typeBeingResolved = ???; // <- How can I get this?
if(typeBeingResolved == typeof(SomeTypeBeingResolvedA))
return new SomeService1();
if (typeBeingResolved == typeof(SomeTypeBeingResolvedB))
return new SomeService2();
...
});
}
接口服务
{
}
类SomeService1:ISomeService
{
}
类SomeService2:isomService
{
}
类SomeTypeBeingResolvedA
{
公共SomeTypeBeingResolvedA(等轴服务someService)
{
}
}
类SomeTypeBeingResolvedB
{
公共SomeTypeBeingResolvedB(ISomeService someService)
{
}
}
静态void Main(字符串[]参数)
{
var servicecolection=新servicecolection();
serviceCollection.AddTransient((IServiceProvider提供程序)=>
{
键入typeBeingResolved=???;//这是否回答了您的问题?