我的网络应用程序中有一个配置部分,用于表示为 JSON 字典的不同 MIME 类型,如下所示:
"AllowedMimeTypes": {
"image/*": "",
"application/pdf": "pdf",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "excel",
"application/vnd.ms-excel": "excel",
"application/msword": "word",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": "word"
}
这是它映射到的类:
using System.Collections.Generic;
namespace MyApp.Models.Config
{
public class AllowedMimeTypes : Dictionary<string, string>
{
}
}
当我使用 secrets.json 在本地运行它时,它工作得很好,但是当我在 Azure 中托管它时,我必须将它表示为环境变量,而且我似乎找不到任何可用的东西。
我已经尝试过使用“AllowedMimeTypes:0:Value”和“AllowedMimeTypes:0:image/*”的“AllowedMimeTypes:0:Key”,它们都抛出异常,而“AllowedMimeTypes:0”则不抛出异常不要给我正确的配置值。
有人知道如何让它工作吗?
最佳答案
您可以将字典键/值对表示为环境变量,方法是将键作为环境变量名称的最后一部分,并将环境变量的值设置为字典中您想要的值,例如 AllowedMimeTypes:application/pdf=pdf
或 AllowedMimeTypes__application/pdf=pdf
。
请注意,如果您使用的是 shell,则在创建这些环境变量(主要是 AllowedMimeTypes__image/*
)时可能会遇到一些麻烦,但这应该是 shell 而非操作系统施加的限制.
为了完整性:
AllowedMimeTypes__image/*=
AllowedMimeTypes__application/pdf=pdf
AllowedMimeTypes__application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=excel
AllowedMimeTypes__application/vnd.ms-excel=excel
AllowedMimeTypes__application/msword=word
AllowedMimeTypes__application/vnd.openxmlformats-officedocument.wordprocessingml.document=word
附言
如果您使用的对象数组包含Key
和 Value
的字符串。例如
public class KVPair {
public string Key, Value;
}
public class AllowedMimeTypes : List<KVPair> {
}
关于c# - 在 .NET Core 环境变量中表示字典 <string, string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56563415/