我不认为获取所有服务是个好主意,但您可以try 首先从程序集中获取类型名称.
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
private readonly IServiceProvider serviceProvider;
public ValuesController(IServiceProvider serviceProvider)
{
this.serviceProvider = serviceProvider;
}
[HttpGet]
public void test()
{
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.ToList();
foreach(var type in types)
{
try
{
var instance = serviceProvider.GetService(type);
if (instance != null)
{
Console.WriteLine(instance.ToString());
}
}
catch
{
}
}
}
}
Test