【问题标题】:C# Web Service returns objects as null from WinForms applicationC# Web 服务从 WinForms 应用程序返回对象为 null
【发布时间】:2013-10-17 08:56:38
【问题描述】:

我正在从我的网络服务返回一个数组,如下所示:

   [WebMethod]
   public Test_UserData[] GetLimitUsers(int min, int max)
   {
   return UserServiceLayer.GetLimitUsers(min, max);    
   }

如果我从浏览器调用此 Web 服务,则会按预期以 XML 格式显示数组和内容。

然后,我将 Web 引用添加到了一个 winforms 项目。 在我的裸机中,我在两个项目之间以相同的方式连接了其他 Web 服务,它们返回普通的旧对象并且它们工作正常。

UserWS.UserWS userWebService = new UserWS.UserWS();
Test_UserData[] testUserData = userWebService.GetLimitUsers(1, 2);

但是,当我调用此 Web 服务时,我得到了预期的对象数量,但所有字段均为 null 且布尔值均为 false。(与数组、列表和 ienumerable 的行为相同。)

有人可以解释为什么我得到了正确的对象,但它们都“无效”了吗?

编辑:

<Test_UserData>
<Id_ValueIncluded>true</Id_ValueIncluded>
<Id>
<Value xmlns="http://www.blah.co.uk/JamesTest/Data/">100001</Value>
<References xmlns="http://www.blah.co.uk/JamesTest/Data/"/>
</Id>
<ExtensionData_ValueIncluded>true</ExtensionData_ValueIncluded>
<Password_ValueIncluded>true</Password_ValueIncluded>
<Password>h</Password>
<UserName_ValueIncluded>true</UserName_ValueIncluded>
<UserName>h</UserName>
<OutputData>
<Type_ValueIncluded>true</Type_ValueIncluded>
<Type>Test_User</Type>
</OutputData>
</Test_UserData>

【问题讨论】:

  • Test_UserData 类是什么样子的?
  • 你在海报上试过了吗...???
  • Test_UserData 属性的可访问性如何?
  • 它们是公开的,带有get/set
  • ASMX 是一项遗留技术,不应用于新开发。 WCF 或 ASP.NET Web API 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum

标签: c# .net winforms asmx


【解决方案1】:

最后是在winforms中使用asmx文件时出现命名空间问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多