在sudzc中将属性赋值给object

时间:2012-08-15 07:02:29

标签: objective-c ios wcf sudzc

我从目标c调用.Net WCF服务。我必须传递类型'类别'在我传递对象之前,我必须初始化它的代码,然后是代码:

SDZiPadDocSyncService *service = [[SDZiPadDocSyncService alloc]init];
service.logging = YES;
SDZCategory *cat = [[SDZCategory alloc]init];
cat.categoryId = [catId intValue];
[service getDocsByCatId:self action:@selector(getDocsByCatIdHandler:) category:cat];        

当呼叫到达SQL Server时,categoryId为0.由于没有Id = 0的任何类别,该服务返回0条记录。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

WCF服务可能无法正确反序列化请求。要验证sudzc正在生成WCF服务所需的soap XML,请使用the WcfTestClient.exe app that comes with Visual Studio来调用该getDocsByCatId方法。在请求/响应面板中,您将看到XML选项卡。将sudzc XML与该选项卡中的XML进行比较。

有时,WCF希望在SOAP正文中明确使用XML名称空间。例如,您的soap显示categoryId元素位于xmlns="http://tempuri.org/" XML 命名空间中,因为这是默认命名空间。确保WcfTestClient中的soap XML还将categoryId放在http://tempuri.org/ XML命名空间中。如果不这样做,不知道如何配置sudzc。

答案 1 :(得分:0)

我终于找到了命名空间问题的解决方法。我必须在我的服务的Namespace="http://tempuri.org"属性中添加DataContract属性。可以在here

找到此变通办法的详细说明