我的wcf
服务方法之一遇到了一个奇怪的问题。我有一个通用的响应模型,它适用于所有其他服务。但对于一个案例,它有一个问题。我的模型类似于:
public class ResponseModel
{
dynamic Model { get; set; }
bool success { get; set; }
string Message { get; set; }
}
我有一个名为LoadUsers
的方法。如果找到用户,则填充列表,创建新的ResponseModel
对象,并将列表分配给Model
属性。等,
List<UserModel> usersList = GetUsersList(ids);
ResponseModel response = new ResponseModel();
response.Model = usersList;
response.success = true;
return response;
所有逻辑都执行得很好。但我完全没有回应。我检查过,response
填充正常,直到最后使用断点,但仍然没有响应。
对我而言,奇怪的是,当usersList
为null
时,Model
的{{1}}属性为response
,工作良好。我得到回应。
&安培;其次,它是我的通用模型,并且适用于所有其他方法。
我无法弄清楚可能的原因。在SO处查看了几个相关问题,但其中大多数与尺寸问题等有关。
为Android设备创建服务,并返回null
。像:
Json
其他服务正在成功使用。请帮助/建议我找出原因。
答案 0 :(得分:0)
您没有收到回复的原因,但调试工作原因是问题发生在服务dll的范围之外。它适用于null,因为序列化程序知道null。它确实知道它是什么。动态类型在这种情况下不起作用,在数据协定的范围内没有意义。如果您知道模型将是用户列表,则应将类型更改为列表。如果除了List之外它可以是其他类型,我建议将类型设置为接口,并使用[ServiceKnownType]属性在类中标记可能的类型。