向 Dynamic.ExpandoObject 对象添加某种接口

Add some sort of interface to a Dynamic.ExpandoObject object

我正在使用一个 return a IList<dynamic>(来自 jsonArray)的库,dynamic 意味着在使用此类对象时没有任何智能感知,我希望能够只需定义动态对象包含的内容。

假设您正在调用某个 https://dummy-url.com/something 端点,其中 returns 以下 JSON:

[
    {
        "firstProp": "First value",
        "secondProp": "Second value",
        "intProp": 1337
    },
    {
        "firstProp": "Another first value",
        "secondProp": "Another second value",
        "intProp": 42
    }
]

然后您需要在程序中定义一个 class 来表示 JSON 结构,例如:

public class Something
{
    public string FirstProp { get; set; }
    public string SecondProp { get; set; }
    public int IntProp { get; set; }
}

最后,调用该端点并将其结果反序列化为您 class:

定义的对象
public async IList<Something> FetchListOfSomething()
{
    var url = "https://dummy-url.com/something";
    return await url.GetJsonAsync<List<Something>>();
}