[英]How to create an object of class property of type List<class>
我的wcf中有以下课程:
[DataContract]
public class CibilEnquiry
{
public PN Pn { get; set; }
[DataMember]
public List<ID> Id { get; set; }
}
[DataContract]
public class ID
{
[DataMember]
public string SegmentTag { get; set; }
[DataMember]
public string IDType { get; set; }
[DataMember]
public string IDNumber { get; set; }
}
[DataContract]
public class PN
{
[DataMember]
public string SegmentTag { get; set; }
[DataMember]
public string ConsumerNameField1 { get; set; }
}
我正在尝试在ym应用程序中创建对象:
CibilWcfService.CibilEnquiry CibilEnquiryEnq = new CibilWcfService.CibilEnquiry();//no problem
CibilEnquiryEnq.Pn = new CibilWcfService.PN();//no problem
CibilEnquiryEnq.Id = new CibilWcfService.ID() ;//Cannot implicitly convert type 'CbilFileReader.CibilWcfService.ID' to 'CbilFileReader.CibilWcfService.ID[]'
正如我在评论中提到的,我无法创建类型为List的CibilEnquiry属性的对象。
此外,似乎当我在wcf中使用构造函数初始化属性时,它毫无用处。 (这里已经问过一个: 无法通过WCF中的Constructor初始化成员 )。
该错误消息是自描述,则不能的实例分配ID
至ID[]
在此线阵列:
CibilEnquiryEnq.Id = new CibilWcfService.ID()
请注意,您已经以这种方式声明了Id
public List<ID> Id { get; set; }
public List<ID> Id { get; set; }
public List<ID> Id { get; set; }
,当您添加服务引用时,服务引用实用程序会将其转换为public ID[] Id { get; set; }
public ID[] Id { get; set; }
public ID[] Id { get; set; }
在CibilWcfService.CibilEnquiry
类型中)。
要将数组的实例分配给Id
,可以使用以下方法:
CibilEnquiryEnq.Id = new CibilWcfService.ID[]{};
要使用一些值初始化数组,可以创建所需大小的数组,然后在for
循环中创建ID
的实例,并将其初始化并将其分配给array[i]
,最后使用CibilEnquiryEnq.Id= array
您也可以使用List<ID>
并使用list.Add()
创建并向其中添加一些ID
,然后将列表转换为数组并通过以下方式分配它: CibilEnquiryEnq.Id= list.ToArray()
它实际上取决于CibilWcfService.ID()
返回的内容。 如果返回ID
那么为什么将您的属性声明为public List<ID> Id { get; set; }
public List<ID> Id { get; set; }
public List<ID> Id { get; set; }
? 如果仅更改此声明,也许会更好?
如果您确实需要将单个记录分配给列表,则可以这样做:
CibilEnquiryEnq.Id = new List<ID> { CibilWcfService.ID() };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.