【问题标题】:WCF service no response when nested model has values当嵌套模型具有值时,WCF 服务没有响应
【发布时间】:2015-06-18 22:22:47
【问题描述】:

我的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,这意味着responseModel 属性是null,它工作正常。我得到回应。 & 其次,它是我的通用模型,适用于所有其他方法。 我想不出可能的原因。在 SO 上查了几个相关的问题,但大部分都与大小问题等有关。

为 Android 设备创建服务,并返回 Json。喜欢:

[OperationContract]
[WebGet(UriTemplate = "LoadUsersList?Key={Key}", ResponseFormat = WebMessageFormat.Json)]
ResponseModel LoadUsersList(string Key);

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

【问题讨论】:

  • 我遇到了同样的问题

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


【解决方案1】:

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

reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 2022-07-28
    • 1970-01-01
    相关资源
    最近更新 更多