繁体   English   中英

如何创建类型为List的class属性的对象<class>

[英]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初始化成员 )。

该错误消息是自描述,则不能的实例分配IDID[]在此线阵列:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM