И теперь у вас есть _test экземпляр для доступа к нему в любом месте вашего контроллера.

ужно прочитать список свойств изappsettings.json файл (раздел:placeto) в бизнес-классе, но я не смог получить к ним доступ. Мне нужно, чтобы эти свойства были публичными.

Я добавляю файл вProgram класс:

Это моеappsettings.json:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "placeto": {
    "login": "fsdfsdfsfddfdfdfdf",
    "trankey": "sdfsdfsdfsdfsdf"
  }
}
 anserk21 нояб. 2017 г., 20:48
Возможный дубликатstackoverflow.com/questions/46632090/...
 Jhon Diaz21 нояб. 2017 г., 21:34
но мне нужно прочитать в пользовательском классе, пример в контроллерах, и я попробовал несколько вариантов. в стандарте .Net используется `string userName = System.Configuration.ConfigurationManager.AppSettings [" PFUserName "];` для чтения web.config, в ядре .Net, эквивалентном @CodeNotFound
 anserk21 нояб. 2017 г., 23:10
Ответ, который я вам привел, показывает, как использоватьappsettings.json в классе. В этом случае этоLocalMailService но это может быть все, что вы хотите.
 CodeNotFound21 нояб. 2017 г., 20:56
Эта документация от MS объясняет это как =>docs.microsoft.com/en-us/aspnet/core/fundamentals/...

Ответы на вопрос(1)

Решение Вопроса

Первый : Использовать значение по умолчанию вprogram.cs для него уже добавлена ​​конфигурация:

{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

второй : Создайте интерфейс для вашего класса и передайте конфигурацию с внедрением зависимостей, создавIconfiguration поле:

private readonly IConfiguration Configuration;

затем передайте его конструктором:

public Test(IConfiguration configuration)
{
    Configuration = configuration;
}

Затем создайте интерфейс для вашего класса, чтобы использоватьDependency Injection должным образом. Тогда можно создавать экземпляры этого без необходимости проходитьIConfiguration к этому.

Вот класс и интерфейс:

using Microsoft.Extensions.Configuration;

namespace GetUserIdAsyncNullExample
{
    public interface ITest { void Method(); }

    public class Test : ITest
    {
        public Test(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        private readonly IConfiguration Configuration;
        public void Method()
        {
            string here = Configuration["placeto:login"];
        }
    }
}

ТретийЗатем в вашем файле startup.cs внедрите Dependency Injection для вашего класса, вызвав:

services.AddSingleton< ITest, Test>();

в вашейConfigureServices метод

Теперь вы можете передавать свои экземпляры классов любому классу, используемому также Dependency Injection.

Например, если у вас естьExampleController что вы хотите использовать свой класс внутри, сделайте следующее:

 private readonly ITest _test;

 public ExampleController(ITest test) 
 {
     _test = test;          
 } 

И теперь у вас есть _test экземпляр для доступа к нему в любом месте вашего контроллера.

Ваш ответ на вопрос