我的设置中有以下部分。我正在使用asp.net核心webapi应用程序。
"security": {
"instance": "https://login.microsoftonline.com/",
"domain": "domain.com",
"tenantId": "tenantid",
"clientId": "sameclientid"
},
"powerBI": {
"resourceUri": "resourceurl",
"authorityUri": "authorityurl",
"extraUrl": "https://api.powerbi.com/",
"clientId": "sameclientid",
"clientSecret": "secret"
}
我需要映射到单个类
class MapperClass {
public string Instance {get;set;}
public string Domain {get;set;}
public string TenantId {get;set;}
public string ClientId {get;set;}
public string ClientSecret {get;set;}
public string ExtraUri {get;set;}
}
是否有一种方法可以合并或合并以上两个部分,并将其映射到最终的MapperClass?
谢谢
由于源文档是JSON,因此您可以将其解析为JObject,然后获取请求的属性,如下所示:
var jsonString = "your JSON";
var jObject = JObject.Parse(jsonString);
var myClass = new MapperClass
{
Instance = jObject["security"]["instance"].Value<string>(),
ClientSecret = jObject["powerBI"]["clientSecret"].Value<string>()
};
您可以只加载两个部分,然后将其合并到一个类中。
var security = settings.GetSection("security") as CustomSection;
var powerBI= settings.GetSection("powerBI") as CustomSection;
MapperClass mapper = new MapperClass();
mapper.Instance = security.Instance;