【发布时间】:2019-04-12 21:48:14
【问题描述】:
我正在编写一项服务,以通过 HTTP 从我公司的另一个团队的 API 中检索数据。来自他们 API 的 JSON 响应体看起来有点像这样:
"SomeObject": {
"SomeInnerObject": {
"SomeProperty": {
"Id": "123",
"Type": "abc",
"Name": "some value"
}
}
}
我正在编写一个 C# 类来将数据存储在内存中,以便进行一些比较。 JSON 对象的嵌套导致类看起来令人讨厌的重复:
public class MyClass
{
public SomeObjectModel SomeObject { get; set; }
public class SomeObjectModel
{
public SomeInnerObjectModel InnerObject { get; set; }
public class SomeInnerObjectModel
{
// etc...
}
}
}
我确信内部类,如“SomeObjectModel”,只会被读取而不是在其他地方实例化,所以有没有办法将类定义和属性定义行组合成更像这样的东西?
public class MyClass
{
public SomeObject { get; set; } :
{
public SomeInnerObject { get; set; } :
{
// etc...
}
}
}
编辑:
JSON 中将包含数组,因此如果您提出使用泛型等的替代方案,请考虑这一点。
【问题讨论】:
-
请注意,类声明本身不需要嵌套即可以嵌套方式使用它们。您可以将
SomeInnerObject类声明在与SomeObject相同的级别,但仍然在SomeObject内使用SomeInnerObject。