Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么要从ASP.NET Core中删除IDependencyResolver?我应该使用什么替代?_C#_Dependency Injection_Simple Injector_Asp.net Core 2.0_Dependency Resolver - Fatal编程技术网

C# 为什么要从ASP.NET Core中删除IDependencyResolver?我应该使用什么替代?

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

我使用的是simple injector,但在.net core 2中找不到
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集成。可能的重复:也请确保阅读以下内容: