静态初始值设定项,其中属性名称与对象名称相同

本文关键字:属性 对象 静态 | 更新日期: 2023-09-27 18:36:37

我有一个返回某个对象的 API,请将其称为 ObjectA 。实际上,这永远不会自行返回,携带此数据的响应具有以下形式之一;

{
   "Status":"Success",
   "ObjectA": {
          "Prop1":"Value",
          "Prop2":"Value"
    }
}

{
    "Status":"Success",
    "ObjectAs": [
        {
           // instances of ObjectA
        } 
    ]
}

现在我想更新这个对象。这是通过提供要更新的属性作为 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"
  }
}
相关文章: