如何设置数组类型的属性
How to Set a property of an Array type
我的应用程序中有一个 SOAP Header。我需要添加一个 item
类型的新值,键 pcimask 和值 true 到 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.
更新: 在 wsdl 中有一个名为 item
的元素(在 ClientContext
中),我需要将它添加到 SOAP 消息中Header像这样:<item key="pcimask" value="true"/>
在 web-service 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;
但它不会编译,因为它就像一个数组或列表,我需要添加一个新项目以便它显示在 header xml 中,如下所示:
<item key=”pcimask” value=”true”>
我需要做什么?
你必须做类似
的事情
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 headers 无关。你的问题只是你不知道如何设置数组。
我的应用程序中有一个 SOAP Header。我需要添加一个 item
类型的新值,键 pcimask 和值 true 到 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.
更新: 在 wsdl 中有一个名为 item
的元素(在 ClientContext
中),我需要将它添加到 SOAP 消息中Header像这样:<item key="pcimask" value="true"/>
在 web-service 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;
但它不会编译,因为它就像一个数组或列表,我需要添加一个新项目以便它显示在 header xml 中,如下所示:
<item key=”pcimask” value=”true”>
我需要做什么?
你必须做类似
的事情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 headers 无关。你的问题只是你不知道如何设置数组。