具有对象数组的Web服务调用方法
本文关键字:服务 调用 方法 Web 对象 数组 | 更新日期: 2023-09-27 18:21:11
我调用一个web服务的方法,该方法将包含对象数组的类作为参数。
Inquiry obj = new Inquiry
{
Items = new Test.Items[]
{
new Test.Items{ Id="1"},
new Test.Items{ Id="2"},
new Test.Items{ Id="3"},
}
};
client.TestMethod(ref obj);
如果我只传递Items数组中的一个项,那么一切都很好。当我传递两个或多个项时,我会得到一个System.ServiceModel.FaultException消息:Imp.Line已存在。标识字段和值:导入流程代码=",UID=",行号="0"我认为复杂类型的xml或soap序列化有问题。
<basicHttpBinding>
<binding name="WEBInquiry_Binding">
<security mode="Transport">
<transport clientCredentialType="Ntlm" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
这是我必须在代码或配置中更改的内容吗?谢谢
编辑FaultException具有Name和Namespace成员为的代码属性
名称=Microsoft.Dynamics.Nav.Types.Exceptions.NavCSideException
Namespace=urn:microsoft dynamics schemas/error
原因是您正在将数据导入Imp.Line表。在NAV中,"行"类型表的主键通常是行号(它只是一个整数)。因此,您有三种选择:-您需要从代码中填充行号以使记录唯一-有人需要更改另一侧的表结构,以使主键自动递增-您必须一个接一个地传递数组项