asp. net core 3.1, как реализовать ConfigurationProperty с помощью AppSettings из appsettings. json - PullRequest
0 голосов
/ 06 марта 2020

У меня есть следующий класс из старого . NET MVC проекта:

public class MatchConfiguration : ConfigurationSection
{
    [ConfigurationProperty("Threshold", IsRequired = false, IsKey = false)]
    public string Threshold
    {
        get
        {
            return this["Threshold"] as string;
        }
        set
        {
            this["Threshold"] = value;
        }
    }

    [ConfigurationProperty("CertaintyThreshold", IsRequired = false, IsKey = false)]
    public string CertaintyThreshold
    {
        get
        {
            return this["CertaintyThreshold"] as string;
        }
        set
        {
            this["CertaintyThreshold"] = value;
        }
    }

    //subsections
    [ConfigurationProperty("nonSignificativeWords")]
    public PatientMatchWordCollection NonSignificativeWords
    {
        get
        {
            return this["nonSignificativeWords"] as PatientMatchWordCollection;
        }
    }
}

В файле web.config у меня был раздел с:

<section name="match" type="Test.Service.MatchConfiguration"></section>

А также в файле web.config:

<match Threshold="92.2" CertaintyThreshold="28">
<nonSignificativeWords>
      <words word="LA" />
      <words word="DY" />
</nonSignificativeWords>
</match>

Теперь в As pNET Core 3.1 есть только файл appsettings.json. Я уже знаю, как создать класс AppSettings и связать раздел AppSetting.

// configure strongly typed settings objects
var appSettingsSection = Configuration.GetSection("AppSettings");
services.Configure<AppSettings>(appSettingsSection);

И мой appsettings.json

"AppSettings": {
    "Threshold": 92.2,
    "CertaintyThreshold": 28,
    "nonSignificativeWords": [
     {
     "word":"LA"
     },
     {
     "word":"DY"
     }]
  }

Это класс AppSettings:

     public class AppSettings
        {
            public double Threshold { get; set; }
            public double CertaintyThreshold { get; set; }
            public List<Word> nonSignificativeWords { get; set; }
        }

public class Word
        {
            public string Word{ get; set; }
        }

Как я могу по-прежнему использовать ConfigurationProperty в качестве класса MatchConfiguration, поэтому он принимает значения из AppSettings?

Любые советы, рекомендации или обходные пути?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...