C# 属性名与对象名相同的静态初始值设定项
我有一个API返回一些对象,称它为C# 属性名与对象名相同的静态初始值设定项,c#,.net,initialization,C#,.net,Initialization,我有一个API返回一些对象,称它为ObjectA。事实上,这些数据不会自行返回,携带这些数据的响应是以下形式之一: { "Status":"Success", "ObjectA": { "Prop1":"Value", "Prop2":"Value" } } 或 现在我想更新这个对象。它是通过提供要更新为PUT主体的属性来完成的。起初,我认为对象应该是整个身体,在与API团队交谈后,我了解到它实际上应该是这样的形式 { "Ob
ObjectA
。事实上,这些数据不会自行返回,携带这些数据的响应是以下形式之一:
{
"Status":"Success",
"ObjectA": {
"Prop1":"Value",
"Prop2":"Value"
}
}
或
现在我想更新这个对象。它是通过提供要更新为PUT主体的属性来完成的。起初,我认为对象应该是整个身体,在与API团队交谈后,我了解到它实际上应该是这样的形式
{
"ObjectA": {
"PropToUpdate":"NewValue"
}
}
这里的问题是,我正在使用
string body = JsonConvert.SerializeObject(new { PropToUpdate = "SomeValue" });
然而,这现在需要像下面这样的东西,不会编译
string body = JsonConvert.SerializeObject(new ObjectA = new { PropToUpdate = "SomeValue" }});
在这种情况下有什么解决办法吗?我认为不编译的原因是相当明显的,我知道有两种解决方法(不要使用静态初始化或更改客户机中的类名),是否有任何方法可以在不使用我提到的任何一种解决方法的情况下实现所需的结果?对于字符串文本,是否有像
@
这样的预编译器指导,允许我使用静态初始化?我有一个坏习惯,因为我忽略了语法错误,所以我会发布有明显答案的问题。我有一个坏习惯,因为我忽略了语法错误,所以我会发布有明显答案的问题。
JsonConvert.SerializeObject(new { ObjectA = new { PropToUpdate = "SomeValue" } })
// indented, that's
{
"ObjectA": {
"PropToUpdate": "SomeValue"
}
}
JsonConvert.SerializeObject(new { ObjectA = new { PropToUpdate = "SomeValue" } })
// indented, that's
{
"ObjectA": {
"PropToUpdate": "SomeValue"
}
}