如何设置数组类型的属性

本文关键字:数组 类型 属性 设置 何设置 | 更新日期: 2023-09-27 18:37:25

我的应用程序中有一个 SOAP 标头。我需要添加一个类型为 item 的新值,该值具有键 pcimask,值为 true客户端上下文

我的客户端上下文在填充时如下所示:

{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 消息标头中,如下所示:<item key="pcimask" value="true"/>

在 Web 服务 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”> 

我需要做什么?

如何设置数组类型的属性

你必须做类似的事情

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 标头无关。您的问题只是您不知道如何设置数组。