如何设置/获取属性' object'一个动态对象?
dynamic json = new ExpandoObject();
json.foo = "bar"; // OK
json.object = "content"; // Does not compile
json["object"] = "content"; // throw RuntimeBinderException
((IDictionary<string, object>)json)["object"] = "content"; // OK, but ...
我正在尝试访问REST API,这需要我设置一个名为&#39; object&#39;的属性。最后一个解决方案实际上解决了问题,但我觉得我错过了一些东西。
答案 0 :(得分:2)
object
是C#关键字
为了定义object
属性,您可以告诉编译器“对象”在这种情况下是属性名称,而不是使用“@”的关键字:
json.@object = "content";
适用于所有关键字:json.@foreach
,json.@if
,json.@var
等。
但是,强烈建议尽量减少其使用,因为它会降低可读性。如果您想在输出JSON中使用object
属性,则可以定义序列化类,并使用JsonPropertyAttribute
告诉序列化程序将其序列化为object
:
public class SomeClass
{
[JsonProperty("object")]
public string ObjectContent { get;set; }
}
将导致
{
"object": "content"
}