Объект запроса SOAP, содержащий нулевые значения - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь реализовать веб-службу SOAP в ASP.NET Core.Я сгенерировал прокси-код с dotnet svcutil и образец запроса с SoapUI.

Проблема заключается в том, что всякий раз, когда я пытаюсь опубликовать запрос в моем сервисе, объект запроса, который я получаю, не является нулевым, но все его значенияявляются.В частности, я тестирую его с объектом этого класса:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.3")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="riceviPrenotazione", WrapperNamespace="http://farpresa.esterni.ised.it/", IsWrapped=true)]
public partial class riceviPrenotazioneRequest
{

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://farpresa.esterni.ised.it/", Order=0)]
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public prenotazione arg0;

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://farpresa.esterni.ised.it/", Order=1)]
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public infoUtente arg1;

    public riceviPrenotazioneRequest()
    {
    }

    public riceviPrenotazioneRequest(prenotazione arg0, infoUtente arg1)
    {
        this.arg0 = arg0;
        this.arg1 = arg1;
    }
}

Это прокси-реализация:

public class FederFarma : FarPreSaEsterniWs
{
    public Task<riceviPrenotazioneResponse> riceviPrenotazione(riceviPrenotazioneRequest request)
    {
        // code...
    }

    public Task<eliminaPrenotazioneResponse> eliminaPrenotazione(eliminaPrenotazioneRequest request)
    {
        // code...
    }

    public Task<verificaDisponibilitaResponse> verificaDisponibilita(verificaDisponibilitaRequest request)
    {
        // code...
    }
}

Вызываемая функция является первой (riceviPrenotazione),Его параметр (request) не равен нулю, но arg0 и arg1 равны.

Это мой интерфейс:

[System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.3")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://farpresa.esterni.ised.it/", ConfigurationName="FarPreSaEsterniWs")]
public interface FarPreSaEsterniWs
{

    [System.ServiceModel.OperationContractAttribute(Action="http://farpresa.esterni.ised.it/FarPreSaEsterniWs/riceviPrenotazioneRequest", ReplyAction="http://farpresa.esterni.ised.it/FarPreSaEsterniWs/riceviPrenotazioneResponse")]
    [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
    System.Threading.Tasks.Task<riceviPrenotazioneResponse> riceviPrenotazione(riceviPrenotazioneRequest request);

    [System.ServiceModel.OperationContractAttribute(Action="http://farpresa.esterni.ised.it/FarPreSaEsterniWs/eliminaPrenotazioneRequest", ReplyAction="http://farpresa.esterni.ised.it/FarPreSaEsterniWs/eliminaPrenotazioneResponse")]
    [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
    System.Threading.Tasks.Task<eliminaPrenotazioneResponse> eliminaPrenotazione(eliminaPrenotazioneRequest request);

    [System.ServiceModel.OperationContractAttribute(Action="http://farpresa.esterni.ised.it/FarPreSaEsterniWs/verificaDisponibilitaRequest", ReplyAction="http://farpresa.esterni.ised.it/FarPreSaEsterniWs/verificaDisponibilitaResponse")]
    [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
    System.Threading.Tasks.Task<verificaDisponibilitaResponse> verificaDisponibilita(verificaDisponibilitaRequest request);
}

И это XML, который я отправляючерез SoapUI:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:far="http://farpresa.esterni.ised.it/">
   <soapenv:Header/>
   <soapenv:Body>
      <far:riceviPrenotazione>
         <!--Optional:-->
         <arg0>
            <!--Optional:-->
            <anagrafica>
               <!--Optional:-->
               <cellulare>3333333333</cellulare>
               <codice>123</codice>
               <!--Optional:-->
               <codiceFiscale>RSSMRA01A00L885A</codiceFiscale>
               <!--Optional:-->
               <cognome>Rossi</cognome>
               <!--Optional:-->
               <comuneDiNascita>
                  <!--Optional:-->
                  <codice>L885</codice>
                  <!--Optional:-->
                  <descrizione>Vignola</descrizione>
                  <!--Optional:-->
                  <fiscale>L885</fiscale>
                  <!--Optional:-->
                  <nazione>
                     <!--Optional:-->
                     <codice>ITA</codice>
                     <!--Optional:-->
                     <descrizione>Italia</descrizione>
                     <!--Optional:-->
                     <fiscale>ITA</fiscale>
                  </nazione>
                  <!--Optional:-->
                  <provincia>MO</provincia>
                  <!--Optional:-->
                  <regione>
                     <!--Optional:-->
                     <codice>ER</codice>
                     <!--Optional:-->
                     <descrizione>Emilia-Romagna</descrizione>
                  </regione>
               </comuneDiNascita>
               <!--Optional:-->
               <domicilioCap>41057</domicilioCap>
               <!--Optional:-->
               <domicilioComune>
                  <!--Optional:-->
                  <codice>F257</codice>
                  <!--Optional:-->
                  <descrizione>Modena</descrizione>
                  <!--Optional:-->
                  <fiscale>F257</fiscale>
                  <!--Optional:-->
                  <nazione>
                     <!--Optional:-->
                     <codice>ITA</codice>
                     <!--Optional:-->
                     <descrizione>Italia</descrizione>
                     <!--Optional:-->
                     <fiscale>ITA</fiscale>
                  </nazione>
                  <!--Optional:-->
                  <provincia>MO</provincia>
                  <!--Optional:-->
                  <regione>
                     <!--Optional:-->
                     <codice>ER</codice>
                     <!--Optional:-->
                     <descrizione>Emilia-Romagna</descrizione>
                  </regione>
               </domicilioComune>
               <!--Optional:-->
               <domicilioIndirizzo>Via Finta, 12</domicilioIndirizzo>
               <!--Optional:-->
               <nome>Mario</nome>
               <!--Optional:-->
               <sesso>M</sesso>
            </anagrafica>
            <!--Optional:-->
            <codice>111</codice>
            <!--Optional:-->
            <!--Zero or more repetitions:-->
            <listaPrenotato>
               <!--Optional:-->
               <prestazione>
                  <!--Optional:-->
                  <codice>222</codice>
                  <!--Optional:-->
                  <codiceRegionale>222</codiceRegionale>
                  <!--Optional:-->
                  <descrizione>Niente di che</descrizione>
                  <!--Optional:-->
                  <specialita>Nullafacentismo</specialita>
               </prestazione>
               <prezzoUnitario>10</prezzoUnitario>
               <quantita>1</quantita>
            </listaPrenotato>
            <!--Optional:-->
            <NRE>080A01234567890</NRE>
            <!--Optional:-->
            <note>Boh</note>
            <prezzoTotale>10</prezzoTotale>
         </arg0>
         <!--Optional:-->
         <arg1>
            <!--Optional:-->
            <nomeUtente>username</nomeUtente>
            <!--Optional:-->
            <password>password</password>
         </arg1>
      </far:riceviPrenotazione>
   </soapenv:Body>
</soapenv:Envelope>

Согласно тому, что я обнаружил в Интернете, это кажется проблемой с пространством имен, но все пространства имен кажутся мне подходящими - SoapUI совместим с автоматически сгенерированными классами, и что наиболее важно, они были сгенерированы изтот же WSDL и не модифицированный.В чем может быть причина?

...