当前位置: 首页 > 知识库问答 >
问题:

如何在Core 2.0中的ConfigurationBuilder中设置路径

苏涛
2023-03-14

如何在Core 2.0的ConfigurationBuilder中设置基本路径。

我在谷歌上搜索并发现了这个问题,这个问题来自微软的文档,还有2.0的在线文档,但它们似乎使用的是微软的版本。扩大1.0.0-beta8中的配置。

我想阅读appsettings。json。在Core 2.0中有没有一种新的实现方法?

using System;
using System.IO;
using Microsoft.Extensions.Configuration;
namespace ConsoleApp2
{
    class Program
    {
        public static IConfigurationRoot Configuration { get; set; }

        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory()) // <== compile failing here
                .AddJsonFile("appsettings.json");

            Configuration = builder.Build();

            Console.WriteLine(Configuration.GetConnectionString("con"));
            Console.WriteLine("Press a key...");
            Console.ReadKey();
        }
    }
}

应用设置。json

{
  "ConnectionStrings": {
    "con": "connection string"
  }
}

更新:除了添加微软。扩展。配置。文件扩展如下所示设置我也需要添加微软。扩展。配置。Json来获取addJsonFile扩展名。

共有3个答案

晏卓君
2023-03-14

同时使用Microsoft。扩展。配置和微软。扩展。配置。Json'这将解决问题。

https://www.nuget.org/packages/Microsoft.Extensions.Configuration/https://www.nuget.org/packages/Microsoft.Extensions.Configuration.Json/

这是“连接工厂”的示例

using System.Data;
using System.Data.SqlClient;
using Microsoft.Extensions.Configuration;
using System.IO;

namespace DataAccess.Infrastructure
{
 public class ConnectionFactory : IConnectionFactory
 {
    public ConnectionFactory()
    {
        var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
        Configuration = builder.Build();
    }


    public IConfigurationRoot Configuration { get; }
    public IDbConnection GetConnection
    {
        get
        {
            var connectionString = Configuration.GetConnectionString("DefaultConnection");
            var conn = new SqlConnection(connectionString);
            conn.Open();
            return conn;
        }
    }

    #region IDisposable Support
    private bool disposedValue = false; // To detect redundant calls

    protected virtual void Dispose(bool disposing)
    {
        if (!disposedValue)
        {
            if (disposing)
            {
                // TODO: dispose managed state (managed objects).
            }


            // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
            // TODO: set large fields to null.

            disposedValue = true;
        }
    }

    // TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources.
    // ~ConnectionFactory() {
    //   // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
    //   Dispose(false);
    // }

    // This code added to correctly implement the disposable pattern.
    public void Dispose()
    {
        // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
        Dispose(true);
        // TODO: uncomment the following line if the finalizer is overridden above.
        // GC.SuppressFinalize(this);
    }
    #endregion
} }
严高峻
2023-03-14

我正在开发一个。NET Core 2控制台应用程序使用Visual Studio 2017 v15.5.正如其他人所指出的,在添加微软之后。扩展。配置我需要添加Microsoft。扩展。配置。Json以获取addJsonFile()调用。这也使得SetBasePath()调用起作用;所以我不需要添加Configuration。文件扩展。(我的代码编译和运行都有和没有它。)

我还调用了一个add环境变量(),为此我需要添加配置。环境变量。我的代码如下:

  var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory()) // requires Microsoft.Extensions.Configuration.Json
                    .AddJsonFile("appsettings.json") // requires Microsoft.Extensions.Configuration.Json
                    .AddEnvironmentVariables(); // requires Microsoft.Extensions.Configuration.EnvironmentVariables
  Configuration = builder.Build();

有趣的是,我唯一需要的使用语句就是使用微软。扩展。配置

宋涵衍
2023-03-14

SetBasePath扩展方法在Config中定义。文件扩展。

您需要添加对Microsoft的引用。扩展。配置文件扩展包。

要解析AddJsonFile,请添加对Microsoft的引用。扩展。配置Json包。

 类似资料:
  • 问题内容: 我有很多jar文件要添加到我的类路径中,因此,每次编译Java文件时,都会得到如下命令: 我尝试使用: 然后: 但是根本没有添加jar:由于缺少jar,我得到了错误信息…谢谢 问题答案: 也许您想尝试使用Maven来构建您的应用程序?它真的很容易设置,并且消除了依赖管理的所有问题。 同样从Java 6开始,您可以在类路径中使用通配符: set CLASSPATH = my_libs \

  • 问题内容: 有人可以告诉我在NetBeans中在哪里以及如何设置类路径吗?我想添加一个.jar文件。 问题答案: 用鼠标右键单击你的项目。 选择Properties。 在左侧单击Libraries。 下Compile tab-单击Add Jar/Folder按钮。 要么 扩展你的项目。 右键单击Libraries。 选择Add Jar/Folder。

  • 我安装了Java1.7.0_21,卸载了以前的版本后,今天安装了1.7.0_45。现在Android Studio已经停止编译项目,并表示无法找到1.7.0_21文件夹。如何为Java SDK设置新路径?我也改变了环境变量,但不起作用。

  • 本文向大家介绍如何在Mac OS中设置Java路径?,包括了如何在Mac OS中设置Java路径?的使用技巧和注意事项,需要的朋友参考一下 环境变量PATH应该设置为指向Java二进制文件的安装位置。如果您在执行此操作时遇到困难,请参考您的shell文档。 例如,如果使用bash作为外壳,则应将以下行添加到'.bashrc的末尾:export PATH = / path / to / java:$

  • Spring Security核心是默认的: http://grails-plugins.github.io/grails-spring-security-core/docs/manual/guide/single.pdf上提供的文档似乎并不是最新的,即使是针对2.0版本的spring security Core。我尝试实现自定义GrailsUser和GrailsUserDetailsServic

  • 为了在命令行上运行TestNG测试,我必须在类路径中设置TestNG。为了做到这一点,我经历了- 无法通过命令行执行TestNG套件文件