C# Java Web服务的C解析响应

C# Java Web服务的C解析响应,c#,java,web-services,C#,Java,Web Services,我正在从.Net应用程序调用Java WebLogic web服务。我已经向jws服务添加了一个服务引用 该服务可以很好地调用,并且我可以在Fiddler中看到响应,但是问题是,虽然我可以在响应的XML中看到保留列表,但Property listOfHolds是空的 这是打电话的代码 holdsList result = proxy.viewHoldsList(request.AccountNo); int noOfHolds = result.NumberOfHolds; // This va

我正在从.Net应用程序调用Java WebLogic web服务。我已经向jws服务添加了一个服务引用

该服务可以很好地调用,并且我可以在Fiddler中看到响应,但是问题是,虽然我可以在响应的XML中看到保留列表,但Property listOfHolds是空的

这是打电话的代码

holdsList result = proxy.viewHoldsList(request.AccountNo);
int noOfHolds = result.NumberOfHolds; // This value is read fine
object[] holds = result.listOfHolds; // This is coming as Null despite the values in the response
下面是Fiddler捕获的响应XML

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header>
        <work:WorkContext xmlns:work="http://oracle.com/weblogic/soap/workarea/">rO0...AAA</work:WorkContext>
    </S:Header>
    <S:Body>
        <ns0:viewHoldsListResponse xmlns:ns0="http://www.openuri.org/">
            <ns0:viewHoldsListResult>
                <ns0:TotalAmount>130.0</ns0:TotalAmount>
                <ns0:NumberOfHolds>4</ns0:NumberOfHolds>
                <ns0:listOfHolds>
                    <ns0:item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns0:holdDetails">
                        <ns0:xsiType>HoldDetails</ns0:xsiType>
                        <ns0:Amount>100.0</ns0:Amount>
                        <ns0:StartDate>2014-02-15T00:00:00.0</ns0:StartDate>
                        <ns0:ExpiryDate>2014-02-20T00:00:00.0</ns0:ExpiryDate>
                        <ns0:Description>For testing</ns0:Description>
                        <ns0:Instruction/>
                        <ns0:Tracer>00000810000287294002</ns0:Tracer>
                        <ns0:HoldId>3591376655</ns0:HoldId>
                        <ns0:EmployeeId>0</ns0:EmployeeId>
                    </ns0:item>
                    <ns0:item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns0:holdDetails">
                        <ns0:xsiType>HoldDetails</ns0:xsiType>
                        <ns0:Amount>10.0</ns0:Amount>
                        <ns0:StartDate>2014-02-15T00:00:00.0</ns0:StartDate>
                        <ns0:ExpiryDate>2014-02-17T00:00:00.0</ns0:ExpiryDate>
                        <ns0:Description>DESC</ns0:Description>
                        <ns0:Instruction/>
                        <ns0:Tracer>00000810000287294004</ns0:Tracer>
                        <ns0:HoldId>3591376656</ns0:HoldId>
                        <ns0:EmployeeId>0</ns0:EmployeeId>
                    </ns0:item>
                </ns0:listOfHolds>
            </ns0:viewHoldsListResult>
        </ns0:viewHoldsListResponse>
    </S:Body>
</S:Envelope>
我以前也遇到过类似的问题,问题是其中一个标记上缺少xmlns属性。在这种情况下,我怀疑标签下面有额外的HoldDetails标签

更新即使在web服务提供商删除了额外的标记之后,我也无法读取列表

我的问题是:

我可以在.Net代码中执行任何操作,以便获得listOfHolds的预期值吗? 我可以向JavaWeb服务的所有者提出任何更改建议吗? [可选]为什么从响应中成功读取NumberOfHolds而不是从列表中读取?
web服务的供应商已进行了更改。他们将xsi:type=ns0:holdDetails更改为xsi:type=ns0:holdDetails H,而不是H


关键是Java,就我所知,与.Net不同的是,它们可以控制从web服务生成的XML。

一些可能有用的链接&