【发布时间】:2017-06-29 08:12:10
【问题描述】:
在 MyRequest 类中我有:
public static T RetrieveData<T>(Uri uri) where T : class, new()
{
return requestData<T>(query);
}
Uri 返回一个字符串数组,例如:
{
"prop1": "JOHN",
"prop2": "JULIE",
"value": 9
},
{
"prop1": "KATE",
"prop2": "Ryan",
"value": 8
}
这就是我调用我的方法的方式:
var obj = MyRequest.RetrieveData<MyObject[]>("http://.....");
这是 MyObject 的定义方式:
public class MyObject
{
public string prop1;
public string prop2;
public double value;
}
这是我得到的错误:
MyObject[]' 必须是具有公共无参数构造函数的非抽象类型,才能将其用作泛型类型或方法 'MyRequest.RetrieveData(uri)' 中的参数 'T'
当我调整 uri 以仅返回一个包含 1 个元素的数组并调用它时,我的方法可以正常工作:
var obj = MyRequest.RetrieveData<MyObject>("http://.....");
而不是
MyObject[]
但我确实需要使用数组。 有什么想法吗?
【问题讨论】:
-
改用
List<MyObject>?不幸的是,这里没有足够的信息来完全回答。 -
就像一个魅力!非常感谢你。如果您愿意,可以将其添加为答案。