Я использую простой инжектор и не смог найти IDependencyResolver
в .net core 2, правильно ли использовать IServiceProvider
вместо IDependencyResolver
, поскольку в IserviceProvider
нет "IDependencyScope BeginScope()
", я немного запутался, стоит ли использовать IServiceProvider
. Я читал, что .net core 2.0 имеет лучшую встроенную поддержку DI, но не уверен, как это использовать.
public class SimpleInjectorWebApiDependencyResolver : IDependencyResolver
{
private readonly Container container;
public SimpleInjectorWebApiDependencyResolver(Container container)
{
this.container = container;
}
[DebuggerStepThrough]
public IDependencyScope BeginScope() // what should i use instead of IdependencyScope in .Net Core
{
return this;
}
[DebuggerStepThrough]
public object GetService(Type serviceType)
{
return ((IServiceProvider)this.container).GetService(serviceType);
}
[DebuggerStepThrough]
public IEnumerable<object> GetServices(Type serviceType)
{
//return this.container.GetAllInstances(serviceType);
IServiceProvider provider = this.container;
Type collectionType = typeof(IEnumerable<>).MakeGenericType(serviceType);
var services = (IEnumerable<object>)provider.GetService(collectionType);
return services ?? Enumerable.Empty<object>();
}
[DebuggerStepThrough]
public void Dispose()
{
}
}
Пожалуйста, объясните, как двигаться дальше без IDependencyResolver
, и если вы объясните, как работает встроенное ядро .net 2.0, я буду более счастлив. Спасибо!