elasticsearch,C#,Json,elasticsearch" /> elasticsearch,C#,Json,elasticsearch" />

是否可以在C#中有一个名为bool的字段?

是否可以在C#中有一个名为bool的字段?,c#,json,elasticsearch,C#,Json,elasticsearch,我正在玩C#中的弹性搜索,我想使用C#中的匿名类型创建一个查询,并将其序列化为JSON。但我遇到了一个问题,因为我需要JSON,其中一个部分如下所示: {"bool": {<unimportant for question>}} {“bool”:{} 这将转换为一个c#类,该类有一个名为bool的字段。这可能吗?(我猜不是…) 我想我需要自定义序列化,或者弹性搜索为bool提供了一些其他替代名称。如果您想将变量命名为与关键字相同的名称,可以在它们前面加上@ bool@bool=f

我正在玩C#中的弹性搜索,我想使用C#中的匿名类型创建一个查询,并将其序列化为JSON。但我遇到了一个问题,因为我需要JSON,其中一个部分如下所示:

{"bool": {<unimportant for question>}}
{“bool”:{}
这将转换为一个c#类,该类有一个名为bool的字段。这可能吗?(我猜不是…)


我想我需要自定义序列化,或者弹性搜索为bool提供了一些其他替代名称。

如果您想将变量命名为与关键字相同的名称,可以在它们前面加上
@

bool@bool=false


我会尽可能避免在任何情况下这样做。这很容易混淆。

使用
DateMember
属性指定序列化名称:

[DataMember(Name = "bool")]
public string MyBoolean { get; set; }

另请参见:

您可以在
[DataMember]
属性中设置名称,但需要使用真实类(而不是匿名类)


更多信息:

bool
是.NET中的有效字段名。然而,为了从C#code访问它,你需要使用
@
,正如@flem的回答所暗示的。我现在添加了misng引号是的,我只是在尝试一些新技术,没什么大不了的。谢谢,“@”工作得很好谢谢,这是我通常会做的,但我用匿名类型尝试了一下。。。
using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization;
using System.Xml;

// You must apply a DataContractAttribute or SerializableAttribute 
// to a class to have it serialized by the DataContractSerializer.
[DataContract()]
class Enterprise : IExtensibleDataObject
{

    [DataMember(Name = "bool")]
    public bool CaptainKirk {get; set;}

    // more stuff here
}