我编写了一个简单的C#Windows应用程序来测试第三方Web服务。以下是生成的Reference.cs中的两个字段
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order = 4)]
public PriceType Price
{
get
{
return this.priceField;
}
set
{
this.priceField = value;
this.RaisePropertyChanged("ExpectedPrice");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Contact", Order = 5)]
public ContactType[] Contact
{
get
{
return this.contactField;
}
set
{
this.contactField = value;
this.RaisePropertyChanged("Contact");
}
}
我创建了请求对象,并将价值分配给Price,如下所示: -
RequestServiceType myRequest = new RequestServiceType();
myRequest.Price = new Blah.PriceType();
myRequest.Price.GrossPrice = new Blah.AmountType();
myRequest.Price.GrossPrice.Value = 10M;
然而
myRequest.Contact = new Blah.ContactType();
错误&#39;无法隐式转换类型&#39; RequestServiceType.ContactType&#39;到&#39; RequestServiceType.ContactType []&#39;。
ContactType
是Reference.cs(ContactType[]
)中的数组。如何在Contact
中创建myRequest
的实例?
答案 0 :(得分:0)
您可以尝试明确铸造吗?
myRequest.Contact =(联系[])(new Blah.ContactType());
答案 1 :(得分:0)
您的语法是什么问题。
错误消息清楚地说明了当属性需要该对象的数组时,您正试图将该对象的实例分配给该属性。
这将包含一个包含一个实例的数组
myRequest.Contact = new []{ new Blah.ContactType() };
只是
的合成糖var contact = new new Blah.ContactType();
var array = new Blah.ContactType[1];
array[0] = contact;
myRequest.Contact = array;