我正在玩 C# 的弹性搜索,我想使用 C# 中序列化为 JSON 的匿名类型创建查询。但是我遇到了一个问题,因为我需要一部分看起来像这样的 JSON:
{"bool": {<unimportant for question>}}
这将转换为具有名为 bool 的字段的 ac# 类。这可能吗?(我的猜测是没有......)
我想我需要自定义序列化,或者弹性搜索可能会为 bool 提供一些其他替代名称。
我正在玩 C# 的弹性搜索,我想使用 C# 中序列化为 JSON 的匿名类型创建查询。但是我遇到了一个问题,因为我需要一部分看起来像这样的 JSON:
{"bool": {<unimportant for question>}}
这将转换为具有名为 bool 的字段的 ac# 类。这可能吗?(我的猜测是没有......)
我想我需要自定义序列化,或者弹性搜索可能会为 bool 提供一些其他替代名称。
如果要将变量命名为与关键字相同的名称,可以在它们前面加上@
.
布尔@bool =假;
我会尽可能避免在所有情况下这样做。这简直令人困惑。
您可以在[DataMember]
属性中设置名称,但您需要使用真实的类(不是匿名的)。
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
}
更多信息:http: //msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute.aspx
使用该DateMember
属性指定序列化名称是什么:
[DataMember(Name = "bool")]
public string MyBoolean { get; set; }