相关疑难解决方法(0)

ASP.NET 5(vNext) - 获取配置设置

我正在编写一个基本的应用程序来学习ASP.NET 5.我觉得困惑的一个领域是配置.在ASP.NET 5之前,我可以执行以下操作:

var settingValue = ConfigurationManager.AppSettings["SomeKey"];
Run Code Online (Sandbox Code Playgroud)

我会在我的代码中散布各种代码.现在,在vNext世界中,我有一个如下所示的config.json文件:

config.json

{
  "AppSettings": {
    "SomeKey":"SomeValue"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在Startup.cs中,我有以下内容: Startup.cs

public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment environment) 
{
  Configuration = new Configuration()
      .AddJsonFile("config.json");
}
Run Code Online (Sandbox Code Playgroud)

从那里,我完全难过.我在/src/Website/Code/Models/MyClass.cs中有MyClass.cs.

MyClass.cs

public class MyClass
{
  public string DoSomething() 
  {
    var result = string.Empty;
    var keyValue = string.Empty; // TODO: What do I do here? How do I get the value of "AppSettings:SomeKey"?
    return result;
  }
}
Run Code Online (Sandbox Code Playgroud)

如何获得"AppSettings:SomeKey"的值?

.net c# asp.net .net-core asp.net-core

42
推荐指数
4
解决办法
3万
查看次数

如何在appSettings.json中硬编码和读取字符串数组?

我使用VSCode和NetCore 1.1.1.

我需要在appsetting.json中存储几个数据路径,让我的控制台应用程序知道在哪里查找其数据.

这是appsettings.json文件的摘录:

{

    "ConnectionStrings":

    {

        "Database": "Filename=./Data/Database/securities_master.db"
    },

    "Data":

    {

     "Folders": ["E:/Data/Folder1/","E:/Data/Folder2/"]

    }
}
Run Code Online (Sandbox Code Playgroud)

我加载配置文件,我希望存储在变量中的"文件夹"数组:

const string APP_SETTINGS_SECTION = "Data";
const string APP_SETTINGS_KEY = "Folders";

var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var configuration = builder.Build();
var dataFolders = configuration.GetSection(APP_SETTINGS_SECTION)[APP_SETTINGS_KEY];
Run Code Online (Sandbox Code Playgroud)

dataFoldersNULL!

如果我将appsetting.json更改为仅指向这样的单个目录,则一切正常:

{

    "ConnectionStrings":

    {

        "Database": "Filename=./Data/Database/securities_master.db"
    },

    "Data":

    {

     "Folders": "E:/Data/Folder1/"   
    }
}
Run Code Online (Sandbox Code Playgroud)

dataFolder=" E:/ Data/Folder1 / "

所以问题似乎是它不喜欢字符串数组,但对我来说它看起来像一个有效的Json字符串数组.我应该如何修改我的appsettings(或我的C#代码)来解决这个问题?

c# appsettings .net-core

20
推荐指数
2
解决办法
1万
查看次数

从 ASP.NET 5 中的 config.json 检索部分

假设我有一个config.json这样的:

{
  "CustomSection": {
    "A": 1,
    "B": 2
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用IConfiguration对象来获取特定设置,即 ,configuration.Get("CustomSection:A")但是我可以获取整个层次结构(任何类型 - 即使是原始字符串也可以)?当我尝试时configuration.Get("CustomSection"),我得到了null结果,所以我认为默认情况下不支持。

我的用例是一次获取整个配置字典,而不必获取每个单独的设置 - 在编译时可能不知道某些属性。

c# asp.net config.json asp.net-core

5
推荐指数
1
解决办法
6082
查看次数

如何在startup.cs的Configure方法中使用ConfigurationBinder

asp.net mvc 6 beta5

我曾尝试使用config.json来激活\ disactive日志记录

public IConfiguration Configuration { get; set; }

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
         {
            var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
            .AddJsonFile("config.json")
            .AddEnvironmentVariables();
            Configuration = configurationBuilder.Build();

            DBContext.ConnectionString = Configuration.Get("Data:DefaultConnection:ConnectionString");
        }

public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
        }

// Configure is called after ConfigureServices is called.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
        {
            // that line cause NullReferenceException  
            AppSettings settings = ConfigurationBinder.Bind<AppSettings>(Configuration);  
             if (settings.Log.IsActive)
             {
              ................
        }
Run Code Online (Sandbox Code Playgroud)

ASP.NET 5(vNext)中的示例- 获取配置设置http://perezgb.com/2015/07/04/aspnet-5-typed-settings-with-the-configurationbinder/
是否有其他方法可以获得"configure"方法中AppSettings的实例?我需要输入对象.

c# asp.net asp.net-core-mvc asp.net-core

2
推荐指数
2
解决办法
3864
查看次数