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# 带有.Net Framework配置的.Net核心_C#_Asp.net Core - Fatal编程技术网

C# 带有.Net Framework配置的.Net核心

C# 带有.Net Framework配置的.Net核心,c#,asp.net-core,C#,Asp.net Core,如何将Configuration Manager AppSetting设置为旧式.Net Framework依赖项。 Net核心中的WebApi,但对于数据访问,必须使用遗留的.Net框架。然后是基本库结构 public class OracleRepository : BaseRepository { public OracleRepository() : base(ConnectionString) { } } public abstract class BaseR

如何将Configuration Manager AppSetting设置为旧式.Net Framework依赖项。 Net核心中的WebApi,但对于数据访问,必须使用遗留的.Net框架。然后是基本库结构

public class OracleRepository : BaseRepository
{
    public OracleRepository() : base(ConnectionString)
    {
    }
}

public abstract class BaseRepository
{
    private string _connectionString;

    public BaseRepository(string connectionString)
    {
        ConnectionString = ConfigurationManager.AppSettings[connectionString];
    }
}

您当然可以将存储库层保留在.net framework中,而不是使用Core

我建议不要使用ConfigurationManager.AppSettings,而是以KeyValuePair集合或Dictionary的形式注入所需的设置


然后可以在启动方法中初始化此KeyValuePair集合或字典

与其传递连接字符串的名称,不如传递连接字符串本身?然后,负责创建类的代码(在.NET Core或.NET Framework中)可以使用任何适当的方式来获取连接字符串。@对于旧dll,mason yes不允许修改。在dll中编写的代码必须是引用。在这种情况下,您应该提供一个接受连接字符串的替代构造函数(可能在包装器对象中,称之为OracleConnectionSettings或类似的东西)。此外,您的库应该移动到.NET标准,以便.NET核心和.NET框架都可以正确引用它。这不会解决遗留问题。问题是我无法更改ConfigurationManager.AppSettings,因为它保存在dll中。asp.net core不使用system.configuration命名空间。因此,该代码将无法正常工作。请参阅[本文档中关于支持的配置]()。