Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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# IdentityServer4-注入ConfigurationDbContext以在类中使用_C#_Asp.net Core_Identityserver4 - Fatal编程技术网

C# IdentityServer4-注入ConfigurationDbContext以在类中使用

C# IdentityServer4-注入ConfigurationDbContext以在类中使用,c#,asp.net-core,identityserver4,C#,Asp.net Core,Identityserver4,我正在ConfigurationDbContext中持久化配置。我现在正在创建一个ServiceProvider,它将允许在以后动态添加客户端、API资源等 我的问题是,在类中检索ConfigurationDbContext的最佳方法是什么?如果依赖项注入是最佳答案,那么如何将ConfigurationDbContext注册为服务,以及如何从Startup.cs之外的类检索该服务,其中iaapplicationbuilder.ApplicationServices不可用?以下是定义Configu

我正在
ConfigurationDbContext
中持久化配置。我现在正在创建一个ServiceProvider,它将允许在以后动态添加客户端、API资源等


我的问题是,在类中检索
ConfigurationDbContext
的最佳方法是什么?如果依赖项注入是最佳答案,那么如何将
ConfigurationDbContext
注册为服务,以及如何从
Startup.cs
之外的类检索该服务,其中
iaapplicationbuilder.ApplicationServices
不可用?

以下是定义ConfigurationDbContext后的操作方法

  • 在Startup.cs文件中,注册ConfigurationDbContext,如下所示

    public void ConfigureServices(IServiceCollection services)
    {
       string connectionString = "my connection string";
    
       services.AddEntityFramework()
                .AddSqlServer()
                .AddDbContext<ConfigurationDbContext>(options => 
                options.UseSqlServer(connectionString));
    
        //Add more services here e.g.
        services.AddMvc();
    }
    

  • 以下是定义ConfigurationDbContext后的操作方法

  • 在Startup.cs文件中,注册ConfigurationDbContext,如下所示

    public void ConfigureServices(IServiceCollection services)
    {
       string connectionString = "my connection string";
    
       services.AddEntityFramework()
                .AddSqlServer()
                .AddDbContext<ConfigurationDbContext>(options => 
                options.UseSqlServer(connectionString));
    
        //Add more services here e.g.
        services.AddMvc();
    }
    

  • 这个链接可能对你有帮助。我已经看过这个链接了。它没有描述如何做到这一点,也许这个链接可能会对你有所帮助。我已经看过这个链接了。它没有描述如何执行此操作,但是当/如果我需要创建MyClassWhereDbContextIsNeeded的实例时,我是否仍然需要提供一个实例?另外,理想情况下,我希望在该类的方法中创建一个新的Dbcontext实例,这样我就可以完成一个工作单元并处理它。您将注册MyClassWhereDbContextIsNeeded作为依赖项之一,并在需要MyClassWhereDbContextIsNeeded实例的任何地方注入它。依赖项注入的整个思想是通过注入依赖项而不是在代码中显式地创建实例来减少紧密耦合。您的DI容器将根据您注册依赖项的方式负责创建/销毁实例。感谢您的回复。我的困惑是我有一个名为
    RoleService
    的类,它有“AddRole”、“DeleteRole”等方法。我希望这些方法中的每一个都在它们的主体中检索一个DbContext。但是当/如果我需要创建MyClassWhereDbContextIsNeeded的实例时,我是否还需要提供一个实例?另外,理想情况下,我希望在该类的方法中创建一个新的Dbcontext实例,这样我就可以完成一个工作单元并处理它。您将注册MyClassWhereDbContextIsNeeded作为依赖项之一,并在需要MyClassWhereDbContextIsNeeded实例的任何地方注入它。依赖项注入的整个思想是通过注入依赖项而不是在代码中显式地创建实例来减少紧密耦合。您的DI容器将根据您注册依赖项的方式负责创建/销毁实例。感谢您的回复。我在这里的困惑是,我有一个名为
    RoleService
    的类,它有“AddRole”、“DeleteRole”等方法。我希望这些方法中的每一个都能在它们的主体中检索DbContext。