[英]How to pass a list array parameter to a web service in c#
I am attempting to consume a web service from BMC Remedy 7.6.04 that creates a Remedy Incident. 我试图使用BMC Remedy 7.6.04中的Web服务,该服务创建了Remedy事件。 Several of the parameters are arrays from which you choose a value to send back to the web service such as Status. 其中一些参数是数组,您可以从中选择一个值以发送回Web服务,例如Status。 I'm getting the following error when I choose a StatusType, UrgencyType and ImpactType.Here is the error for Status Type: 选择StatusType,UrgencyType和ImpactType时出现以下错误。这是Status Type的错误:
Cannot implicitly convert type 'Client.RemedyInc.StatusType' to 'Client.RemedyInc.StatusType[]' 无法将类型“ Client.RemedyInc.StatusType”隐式转换为“ Client.RemedyInc.StatusType []”
Status is enumerated in the reference.cs as follows: 在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,
}
AND: 和:
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="urn:HPD_IncidentInterface_Create_WS", Order=32)]
[System.Xml.Serialization.XmlElementAttribute("Status")]
public StatusType[] Status;
Here is a sample of my code: 这是我的代码示例:
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";
}
Any help would be greatly appreciated. 任何帮助将不胜感激。 Ken 肯
Should your Status
be declared as an array? 应该将您的Status
声明为数组吗? That seems to be what the exception is in that you can't assign the StatusType
to type StatusType[]
这似乎是一个例外,因为您无法将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[]
And if the declaration is correct, then perhaps you just need your calling code to assign the New value as an array. 如果声明正确,那么您可能只需要调用代码即可将New值分配为数组。
RemTicket.Status = new StatusType[] { RemedyInc.StatusType.New };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.