如何在Azure应用程序配置部分中使用“枚举”?

col17t5w  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(111)

我有一个C#应用程序,我已经部署到Azure。现在,应用程序中有一个部分,我需要获取一些配置设置,所以我使用Environment.GetEnvironmentVariable(“VALUE”)来获取值。但在C#代码中,我有一个部分如下所示:

switch (type)
        {
            case "client1":
                endpoint = $"{Environment.GetEnvironmentVariable("client1Value")}
                break;
            case "client2":
                endpoint = $"{Environment.GetEnvironmentVariable("client2Value")}
                break;
            case "client3":
                endpoint = $"{Environment.GetEnvironmentVariable("client3Value")}
                break;
            default:
                break;
        }

字符串
问题是我必须在Azure配置中定义3个值。但是如果我需要添加一个新的,我需要更改和重新编译代码。
因为在代码的其他部分我需要不同的值,

switch (type)
        {
            case "client1":
                endpoint = $"{Environment.GetEnvironmentVariable("resetValue1")}
                break;
            case "client2":
                endpoint = $"{Environment.GetEnvironmentVariable("resetValue2")}
                break;
            case "client3":
                endpoint = $"{Environment.GetEnvironmentVariable("resetValue3")}
                break;
            default:
                break;
        }


有没有办法做到以下几点:

endpoint = $"{Environment.GetEnvironmentVariable("type")}


在配置中有某种枚举,它将区分是否是客户端1,然后给予正确的配置值,而不是在代码中做?

4xrmg8kj

4xrmg8kj1#

所以如果我对这个问题的理解是正确的,你需要的是从“键到值”的Map,转换为C#Dictionary。你唯一需要的部分是在你的配置中添加/更改这些值。
在这个例子中,看起来你需要2个Map(2个字典):

// Showing this as an example, normally you would deserialize them from configuration
var dictTypeToClient = new Dictionary<string, string>()
{
    { "client1", "client1Value" },
    { "client2", "client2Value" },
    { "client3", "client3Value" },
};

var dictTypeToReset = new Dictionary<string, string>()
{
    { "client1", "resetValue1" },
    { "client2", "resetValue2" },
    { "client3", "resetValue3" },
};

//To get actual value, you would just query those dictionaries:
string type = "client2";

var clientValue = dictTypeToClient[type];
var resetValue = dictTypeToReset[type];

字符串

相关问题