如何在ASP.NET Core项目中引用程序集

15

我有这一行

string sConnectionString = ConfigurationManager.ConnectionStrings["Hangfire"].ConnectionString;

需要包含System.Configuration,请问在项目的哪个位置添加对System.Configuration的引用?因为我在References下没有找到经典的添加位置。

输入图片说明


.Net Core项目使用不同的配置模型,基于Microsoft.Extensions.Configuration而不是System.Configuration。你的实际HangFire连接字符串在哪里设置?在你的appsettings.json文件中吗? - haim770
@haim770 我正在学习这份手册 http://www.talkingdotnet.com/integrate-hangfire-with-asp-net-core-web-api/ - NoWar
2个回答

11

您正在学习的教程可能使用针对完整 .Net Framework (4.6) 的 Asp.Net Core,它能够依赖于 System.Configuration(这是不可移植且不支持 CoreFX)。

.Net Core 项目(跨平台)使用基于 Microsoft.Extensions.Configuration 而不是 System.Configuration 的不同配置模型。

假设您的 Hangfire 连接字符串在您的 appsettings.json 中被定义:

{
     "ConnectionStrings": {
         "HangFire": "yourConnectionStringHere"
     }
}

您可以在 Startup.cs 文件中进行阅读:

public class Startup
{
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)

        this.Configuration = builder.Build();

        var hangFireCS = this.Configuration.GetConnectionString("HangFire");
    }
}

此外,使用AddJsonFile()扩展方法需要安装Microsoft.Extensions.Configuration.Json包。


我同意你的观点,但是我面对的手册介绍的是旧的方法,而这种方法在 Asp.Net Core 中已不再支持。这是否意味着该手册不正确? - NoWar
本质上来说,这并没有什么“不正确”的地方。您可以构建针对完整框架(4.6)的Asp.Net Core应用程序。但是,您将无法获得Core框架的所有优势和可移植性。 - haim770

-2

@Dimi 右键点击“引用”文件夹 -> 添加引用 -> 搜索配置 -> 选中 System.Configuration -> 点击确定。

然后在您的 .cs 文件中添加命名空间,例如:

using System.Configuration;

enter image description here enter image description here


1
没有找到任何项目。 - NoWar
抱歉,我看不到和你一样的窗口。我创建了ASP.NET Core Webapi项目。请查看我的更新问题。 - NoWar
1
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration - Mohit Solanki
1
请访问上述链接。 - Mohit Solanki
1
@Dimi:这是ASP.NET Core/.NET Core,它完全模块化并基于NuGet包。与之前的.NET Framework不同,你不会有文件散落在周围。无论你需要什么,都需要在project.json中引用它(当VS2017发布时,很快就会变成csproj内部)。 - Tseng
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接