Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用保留字(类型名称)作为ExpandooObject或Dynamic属性_C#_Asp.net_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Dynamic_Expandoobject - Fatal编程技术网 elasticsearch,dynamic,expandoobject,C#,Asp.net,elasticsearch,Dynamic,Expandoobject" /> elasticsearch,dynamic,expandoobject,C#,Asp.net,elasticsearch,Dynamic,Expandoobject" />

C# 使用保留字(类型名称)作为ExpandooObject或Dynamic属性

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,可以使用任何字符串值作为属性名(包括保留字、空格等

我如何才能用保留字的键设置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 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