簡體   English   中英

如何在C#中將列表數組參數傳遞給Web服務

[英]How to pass a list array parameter to a web service in c#

我試圖使用BMC Remedy 7.6.04中的Web服務,該服務創建了Remedy事件。 其中一些參數是數組,您可以從中選擇一個值以發送回Web服務,例如Status。 選擇StatusType,UrgencyType和ImpactType時出現以下錯誤。這是Status Type的錯誤:

無法將類型“ Client.RemedyInc.StatusType”隱式轉換為“ Client.RemedyInc.StatusType []”

在reference.cs中枚舉狀態,如下所示:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:HPD_IncidentInterface_Create_WS")]
public enum StatusType {        
    /// <remarks/>
    New,        
    /// <remarks/>
    Assigned,        
    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("In Progress")]
    InProgress,        
    /// <remarks/>
    Pending,        
    /// <remarks/>
    Resolved,        
    /// <remarks/>
    Closed,        
    /// <remarks/>
    Cancelled,
}    

和:

[System.ServiceModel.MessageBodyMemberAttribute(Namespace="urn:HPD_IncidentInterface_Create_WS", Order=32)]
[System.Xml.Serialization.XmlElementAttribute("Status")]
public StatusType[] Status;

這是我的代碼示例:

protected void ToRemedy_Click(object sender, EventArgs e)
        {
            RemedyInc.AuthenticationInfo AuthInfo = new RemedyInc.AuthenticationInfo();
            AuthInfo.userName = "User";
            AuthInfo.password = "Password";

            RemedyInc.HelpDesk_Submit_ServiceRequest RemTicket = new RemedyInc.HelpDesk_Submit_ServiceRequest();

            RemTicket.AuthenticationInfo = AuthInfo;

            RemTicket.Summary = "This is a web service Test";
            RemTicket.Last_Name = "LName";
            RemTicket.First_Name = "FName";
            RemTicket.Service_Type = RemedyInc.Service_TypeType.UserServiceRequest;
            RemTicket.Reported_Source = RemedyInc.Reported_SourceType.SelfService;

            RemTicket.Status = RemedyInc.StatusType.New;
            RemTicket.Urgency = RemedyInc.UrgencyType.Item4Low;
            RemTicket.Impact = RemedyInc.ImpactType.Item4MinorLocalized;

            RemTicket.Notes = "This is a web service test";
            RemTicket.TemplateID = "AGGAAHHLITMRAAMBGOJWBIN45LBV62";
            RemTicket.Action = "CREATE";

        }

任何幫助將不勝感激。

應該將您的Status聲明為數組嗎? 這似乎是一個例外,因為您無法將StatusType分配為類型StatusType[]

[System.ServiceModel.MessageBodyMemberAttribute(Namespace="urn:HPD_IncidentInterface_Create_WS", Order=32)]
[System.Xml.Serialization.XmlElementAttribute("Status")]
public StatusType Status; // Declared as StatusType instead of StatusType[]

如果聲明正確,那么您可能只需要調用代碼即可將New值分配為數組。

RemTicket.Status = new StatusType[] { RemedyInc.StatusType.New };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM