अब तक मैंने कुछ नमूना कोड देखा है जिसमें environment.json नाम की फ़ाइल में कुछ कॉन्फ़िगरेशन डाला गया है:

[
    {
        "Name": "Default",

    "AppInfo": {
          "Name": "blahblah",
          "Version": "1"
    },
    "Configs": [
      {
        "Key": "someconfiguration",
        "Value": "some value"
      },
      {
        "Key": "another configuration ",
        "Value": "blah blah"
      },
    ]
   }
]

और फिर जब आवश्यक हो, डेटा को कॉन्फ़िगरेशन फ़ाइल से इस तरह पढ़ा जा सकता है:

var value = DefaultAppEnvironmentsProvider.Current
            .GetActiveAppEnvironment()
            .GetConfig<string>("SomeConfiguration");

सवाल यह है की:

क्या होगा यदि मैं कुछ configuration लेना चाहता हूं जिसका मूल्य एक नेस्टेड json list या json object है। मुझे ऐसा कुछ चाहिए:

"key": "Address",
"value": {
    "street": "some street name",
    "postal code": "blah blah",
    ...
}

मैं bit का उपयोग करके ऐसे कॉन्फ़िगरेशन को कैसे पढ़ सकता हूं?

आपके समय के लिए अग्रिम धन्यवाद।

1
Shahryar Saljoughi 8 सितंबर 2018, 17:43

1 उत्तर

सबसे बढ़िया उत्तर

सबसे पहले, एक वर्ग बनाएं जो आपके कॉन्फ़िगरेशन अनुबंध को परिभाषित करे:

public class MailServerConfig
{
    public Uri ServerUrl { get; set; }

    public string AnotherConfig { get; set; }
}

फिर अपने परिवेशों में निम्नलिखित जोड़ें।json फ़ाइल:

,
      {
        "Key": "MailServerConfig",
        "Value": {
          "$type": "SampleApp.Configurations.MailServerConfig, SampleApp",
          "ServerUrl": "https://google.com/",
          "AnotherConfig": "!"
        }
      }

अपने नियंत्रकों में (या जहां भी आप अपनी कॉन्फ़िगरेशन पढ़ना चाहते हैं), AppEnv इंजेक्ट करें

public AppEnvironment AppEnv { get; set; }

फिर नीचे के रूप में अपना कॉन्फिगरेशन पढ़ें:

MailServerConfig mailServerConfig = AppEnv.GetConfig<MailServerConfig>("MailServerConfig");

ध्यान दें कि Environment.json में, $type अनिवार्य है, और यह आपके नेस्टेड json ऑब्जेक्ट की पहली पंक्ति होनी चाहिए।

1
Yaser Moradi 1 पद 2018, 16:16