[C#] - Service Reference - optionele velden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Situatie: Een WSDL die er ongeveer zo uit ziet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.service-now.com/incident">
      <xsd:element name="getRecords">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="open" type="xsd:boolean" />
            <xsd:element minOccurs="0" maxOccurs="1" name="number" type="xsd:string" />
            <xsd:element minOccurs="0" maxOccurs="1" name="title" type="xsd:string" />
            
.......

Dus, 3 optionele velden.

Als ik een Service Reference toevoeg aan VS2010 komt in de reference.cs alleen voor de boolean een extra property "OpenSpecified". Bij de twee strings gebeurt dit niet. Dit geeft een probleem als number en/of title niet gevuld zijn in de XML response. Ik krijg dan namelijk allemaal null values.

In de reference.cs staat per property (open, number en title) een attribuut:
code:
1
[System.Xml.Serialization.XmlElementAttribute(Order=0)]

Bij title staat Order=2, maar het kan dus zomaar zijn dat deze als tweede in het bericht staat doordat Number ontbreekt. Hierdoor krijg ik dus null values.

Ik heb veel gegoogled hierop, maar de enige oplossing die ik vond was handmatig de Order= weg te halen. Dat kreeg ik niet werkend, tevens is dat geen optie, het moet gewoon werken nadat ik Update Service Reference klik.

Een oude web reference werkt wel, die is minder strict.
Ik zit dus even vast, wie helpt me verder?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Eeeuuhhhh, het werkt ineens wel...
Problem lijkt solved....