C# 使用保留字(类型名称)作为ExpandooObject或Dynamic属性
我如何才能用保留字的键设置ExpandooObject的属性 像这样:C# 使用保留字(类型名称)作为ExpandooObject或Dynamic属性,c#,asp.net,elasticsearch,dynamic,expandoobject,C#,Asp.net,elasticsearch,Dynamic,Expandoobject,我如何才能用保留字的键设置ExpandooObject的属性 像这样: dynamic query = new ExpandoObject(); query.size = 10; query.date = "2017-04-27"; dynamic match = new { query = query, bool = true } 在ExpandoObject中,通过将ExpandoObject实例强制转换为IDictionary,可以使用任何字符串值作为属性名(包括保留字、空格等
dynamic query = new ExpandoObject();
query.size = 10;
query.date = "2017-04-27";
dynamic match = new {
query = query,
bool = true
}
在
ExpandoObject
中,通过将ExpandoObject
实例强制转换为IDictionary
,可以使用任何字符串值作为属性名(包括保留字、空格等,甚至空字符串):
dynamic query = new ExpandoObject();
(query as IDictionary<string, object>)["bool"] = true;
(query as IDictionary<string, object>)[" b o o (g)? l \"e:)\""] = false;
(query as IDictionary<string, object>)[""] = true;
var qDict = query as IDictionary<string, object>;
Console.WriteLine(qDict["bool"]);
Console.WriteLine(qDict[" b o o (g)? l \"e:)\""]);
Console.WriteLine(qDict[""]);
// Prints:
// True
// False
// True