C# 为什么要从ASP.NET Core中删除IDependencyResolver?我应该使用什么替代?
我使用的是simple injector,但在.net core 2中找不到C# 为什么要从ASP.NET Core中删除IDependencyResolver?我应该使用什么替代?,c#,dependency-injection,simple-injector,asp.net-core-2.0,dependency-resolver,C#,Dependency Injection,Simple Injector,Asp.net Core 2.0,Dependency Resolver,我使用的是simple injector,但在.net core 2中找不到IDependencyResolver,使用IServiceProvider而不是使用IDependencyResolver,这是正确的选择吗,因为IServiceProvider中没有“IDependencyScope BeginScope()”,我对是否使用IServiceProvider有点困惑。我了解到.net core 2.0具有更好的内置DI支持,但不确定如何利用它 public class SimpleIn
IDependencyResolver
,使用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()
{
}
公共类SimpleInjectorWebApidencyResolver:IDependencyResolver
{
专用只读容器;
公共SimpleInjectorWebApidencyResolver(容器)
{
this.container=容器;
}
[调试步骤至]
public IDependencyScope BeginScope()//在.Net Core中我应该使用什么来代替IDependencyScope
{
归还这个;
}
[调试步骤至]
公共对象GetService(类型serviceType)
{
return((IServiceProvider)this.container).GetService(serviceType);
}
[调试步骤至]
公共IEnumerable GetServices(类型serviceType)
{
//返回此.container.GetAllInstances(serviceType);
IServiceProvider provider=this.container;
类型collectionType=typeof(IEnumerable)。MakeGenericType(serviceType);
var services=(IEnumerable)provider.GetService(collectionType);
返回服务??可枚举的.Empty();
}
[调试步骤至]
公共空间处置()
{
}
}
请解释一下,如果不使用IDependencyResolver
的话,我会更乐意使用内置的.net core 2.0。谢谢 你看过报纸了吗?它解释了如何将Simple Injector与ASP.NET Core MVC集成。可能的重复:也请确保阅读以下内容: