[英]With C# how to pass list of dynamically generated collection as JSON array to WCF web service
[英]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.