当嵌套模型具有值时,WCF服务无响应

时间:2015-04-13 14:42:34

标签: c# web-services wcf no-response

我的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填充正常,直到最后使用断点,但仍然没有响应。

对我而言,奇怪的是,当usersListnull时,Model的{​​{1}}属性为response,工作良好。我得到回应。 &安培;其次,它是我的通用模型,并且适用于所有其他方法。 我无法弄清楚可能的原因。在SO处查看了几个相关问题,但其中大多数与尺寸问题等有关。

为Android设备创建服务,并返回null。像:

Json

其他服务正在成功使用。请帮助/建议我找出原因。

1 个答案:

答案 0 :(得分:0)

您没有收到回复的原因,但调试工作原因是问题发生在服务dll的范围之外。它适用于null,因为序列化程序知道null。它确实知道它是什么。动态类型在这种情况下不起作用,在数据协定的范围内没有意义。如果您知道模型将是用户列表,则应将类型更改为列表。如果除了List之外它可以是其他类型,我建议将类型设置为接口,并使用[ServiceKnownType]属性在类中标记可能的类型。

reference