【发布时间】:2020-01-03 10:17:56
【问题描述】:
我正在编写一个返回对象 MyObject 的 WebApi。 MyObject 类是在另一个 DLL 中定义的,我无法修改它的源代码。这个 MyObject 类没有放置 setter/getter,所以公共成员不是属性,它们只是字段。
所以在我的 WebApi 代码中,我想返回这个 Json MyObject,但我在 http 请求中得到的只是一个空的 {} json 数据,当我知道该对象确实包含数据时。唯一的区别是它没有发布 setter/getter,这就是它返回 {} 的原因。
我怎样才能将 MyObject 作为 Json 与数据一起返回,而不必制作我自己的 MyOwnObject,其中所有确切的字段,但属性将它们设置为 get/set 属性?
例如,如果我使用
public class MyObject
{
public string name;
}
即使 name 包含某些内容,此版本也会返回空 {} 数据,其中为
public class MyObject
{
public string name { get; set; }
}
将属性返回 Json 数据,但我无法修改 MyObject,因为它是从另一个我没有源代码的 DLL 编写的。
非常感谢。
【问题讨论】:
-
我不确定我是否理解,但你能不能只创建一个与 api 具有相同字段(使用
JsonProperty)的对象并将 JSON 反序列化到其中? -
是的,我知道我可以创建一个具有所有完全相同字段的对象,但是该类非常大,包含许多字段。我不想复制该类。我知道我可以逐个字段复制,但是有没有简单直接的方法呢?
-
能否继承类并实现属性并为父类字段赋值?
-
让我试试,谢谢
标签: c# .net json asp.net-core webapi