2015-01-13 4 views
0

У меня есть заголовок SOAP в моем приложении. Мне нужно, чтобы добавить новое значение типа item с ключом pcimask и значение верно к ClientContextКак установить свойство типа массива

мой clientcontext выглядит следующим образом заселена:

{EvryCardManagement.ws.card.DCSSCardCreate_V3_0.ClientContextType} 
channel: "NBA" 
channelField: "NBA" 
credentials: "token string" 
credentialsField: "string" 
customerid: "" 
customeridField: "" 
ip: "123.456.789.123" 
ipField: "123.456.789.123" 
item: null 
itemField: null 
locale: null 
localeField: null 
orgid: "123456" 
orgidField: "123456" 
orgunit: "123456" 
orgunitField: "123456" 
userid: "name" 
useridField: "name" 

после того, как мне нужно, чтобы добавить новый элемент под названием pcimask со значением true.

UPDATE: в WSDL есть элемент, называемый itemClientContext), и мне нужно, чтобы добавить его в заголовки сообщений SOAP, как это: <item key="pcimask" value="true"/>

В веб-сервиса WSDL item что мне нужно установить, определяется следующим образом:

private itemType[] itemField; 

/// <remarks/> 
[System.Xml.Serialization.XmlElementAttribute("item", IsNullable=true)] 
public itemType[] item { 
    get { 
     return this.itemField; 
     } 
    set { 
     this.itemField = value; 
     } 
    } 

и так в моем коде, который устанавливает эти значения у меня есть это:

ClientContextType clientContext = new ClientContextType(); 

clientContext.userid = edb_service[0].userid; 

clientContext.credentials = Common.SOToken; 

//clientContext.pc 
clientContext.orgid = edb_service[0].orgid; 
clientContext.orgunit = edb_service[0].orgunit; 
clientContext.customerid = ""; 
clientContext.channel = edb_service[0].channel; 
clientContext.ip = edb_service[0].ip; 

и после ip элемента я хочу, чтобы установить пункт:

clientContext.item = edb_service[0].pcimask; 

, но он не будет компилировать, поскольку это как массив или список, и мне нужно, чтобы добавить новый элемент, так что проявляется в заголовок xml вот так:

<item key=”pcimask” value=”true”> 

Что мне нужно сделать?

+0

Вы имеете в виду, что вы делаете после изменения класса ClientContextType? –

+0

@JohnSaunders хорошо, в wsdl есть элемент под названием 'item' (внутри' ClientContext'), и мне нужно добавить его в заголовки сообщений SOAP следующим образом: '

+0

Вам не нужно ничего добавлять. Вопрос в том, почему это уже не в заголовке. Вы пытались установить свойство «item»? –

ответ

1

Вы должны сделать что-то вроде

clientContext.item = new itemType[]{new itemType{key="pcimask", value="true"}}; 

item является массивом. Вам нужно создать массив, заполнить его соответствующими данными, а затем использовать этот массив для установки item. Вышесказанное является ярлыком для этого. Шаг за шагом:

itemType it = new itemType(); 
it.key = "pcimask"; 
it.value = "true"; 
itemType[] itArray = new itemType[]; 
itArray[0] = it; 
clientContext.item = itArray; 

Обратите внимание, что это не имеет ничего общего с заголовками SOAP. Ваша проблема состояла в том, что вы не знаете, как установить массив.

+0

Спасибо большое, это заняло у меня много времени и много скрежет, чтобы схватить зубы. .. –

Смежные вопросы