de appsettings.json je veux lire ces paramètres:
public class CountryPhoneSetting { public IDictionary<string, CountryDetails> CountryInfo { get;set; } public class CountryDetails { public string DialCode { get; set; } public bool CanSMS { get; set; } public bool CanVerify { get; set; } }
3 Réponses :
Notez le supplément [] code> après
CountryPHonesetting code>. C'est une gamme de dictionnaire.
public class CountryPhoneSetting
{
[JsonProperty("CountryPhoneSetting")]
public Dictionary<string, CountryDetails>[] CountryInfo {get;set;}
}
public class CountryDetails
{
[JsonProperty("DialCode")]
public string DialCode { get; set; }
[JsonProperty("CanSMS")]
public bool CanSms { get; set; }
[JsonProperty("CanVerify")]
public bool CanVerify { get; set; }
}
var result = JsonConvert.DeserializeObject<CountryPhoneSetting>(input);
J'écris une petite extension pour mon projet. Vous pouvez l'essayer aussi
configuration.Load<List<Dictionary<string, CountryDetails>>>("CountryPhoneSetting")
Essayez de changer votre JSON en: et votre classe à: p> utilisation: p> Configuration.GetSection("CountryPhoneSetting").Bind(CountryPhoneSetting);
J'ai oublié de mentionner que pour peupler la campagne de l'objet, vous devez mettre cette ligne de code à l'intérieur du fichier de démarrage: configuration.getsection ("CountryPHonesetting"). Bind (Pays Phonesetting); Si vous ne savez pas comment faire, lisez cet article: weblog.west-wind.com/posts/2017/dec/12/...
Cette approche peut être utile. Pourriez-vous s'il vous plaît mettre à jour la réponse avec votre commentaire?
@ Selimyıldız Il semble que je n'ai pas assez de réputation pour éditer des réponses = (c'est la première fois que je fais asserve une question
La réponse affichée et l'article qui a été partagé m'a aidé à résoudre mon problème. Merci !
et je veux l'ajouter aux services tels que: services.configure (Configuration.Getsec TION ("CountryPhonese Ting"));
Montrez-nous le code qui ne fonctionne pas.
Configuration.Gettection ("CountryPHonesetting"). Getchildren () .tolist () .ToDictionary (x => x.key, x => x.value); Cela se traduit en vide
Biîtement, le Json est "CountryPHonesetting": [ B> {"US": {"DIAMCODE": "+1", "CANSMS": TRUE, "CANVERIFY": TRUE}} ] b>, l'extra
[] code> en fait un dictionnaire
Dictionnaire [] code> Peut-être afficher une configuration avec plusieurs entrées dans le dictionnaire .. Sera-t-il un dictionnaire multiple d'un élément?