RestBody,在C#中创建Json负载会导致冲突,因为键是C#关键字

RestBody,在C#中创建Json负载会导致冲突,因为键是C#关键字,c#,anonymous-types,C#,Anonymous Types,我正在使用RestSharp创建RestRequest 这看起来非常简单和直接 但我注意到的问题是,在开发将成为有效负载主体一部分的对象时,一个键被称为“params” 如果你不知道。Params是一个关键字。我如何创建有效负载以正确实现,尽管键可能是C语言的专用键 var payload = new { data = "", command = new { name = "Foo", params = "Bar" } }; RestSha

我正在使用RestSharp创建RestRequest 这看起来非常简单和直接

但我注意到的问题是,在开发将成为有效负载主体一部分的对象时,一个键被称为“params”

如果你不知道。Params是一个关键字。我如何创建有效负载以正确实现,尽管键可能是C语言的专用键

var payload = new {
    data = "",
    command = new {
        name = "Foo",
        params = "Bar"
    }
};
RestSharp.RestRequest request = new RestSharp.RestRequest(RestSharp.Method.POST);
request.Resource = "";
request.AddBody(payload);
var result = Client.Execute(request);

您可以将
@
放在参数之前:


我已经测试过了,输出的JSON将是
params
,没有
@

,您只需将
@
放在params之前:


我已经测试过了,输出的JSON将是
params
,没有
@

代码中没有JSON负载。这是一个匿名类型定义,Complinsi在网上引用了其他示例,我同意,它不是json perse,它将在正文中被解析,这与json无关。这是用于创建的
payload
只是一个对象,
AddBody
可以序列化为JSON字符串,也可以不序列化为JSON字符串。问题是名为
params
的属性与C#关键字同名。如果将其命名为
int
DateTime
,则会遇到同样的问题。代码中没有JSON负载。这是一个匿名类型定义,Complinsi在网上引用了其他示例,我同意,它不是json perse,它将在正文中被解析,这与json无关。这是用于创建的
payload
只是一个对象,
AddBody
可以序列化为JSON字符串,也可以不序列化为JSON字符串。问题是名为
params
的属性与C#关键字同名。如果您将其命名为
int
DateTime
,您也会遇到同样的问题。
var payload = new {
    data = "",
    command = new {
        name = "Foo",
        @params = "Bar"
    }
};