【发布时间】:2016-02-18 14:07:18
【问题描述】:
我有一个 CibilResponse 类,它具有类类型(TUEF 类)的属性。
我正在尝试使用:CibilEnquiryEnq.Tuef.Version = "12"; 分配值,但它会引发空引用错误。我已经解决了这个错误,但是通过创建一个像这样的对象:CibilEnquiryEnq.Tuef = new CibilWcfService.TUEF(); 而不是通过构造函数。
ICIBIL.cs
[ServiceContract]
public interface ICIBIL
{
[OperationContract]
string InsertCibil(CibilResponse cibilResponse);
[OperationContract]
string TestInsert(string testObj);
[OperationContract]
string GenerateEnquiry(CibilEnquiry testObj);
}
[DataContract]
public class CibilEnquiry
{
[DataMember]
public TUEF Tuef { get; set; }
public CibilEnquiry()
{
this.Tuef = new TUEF();
}
}
[DataContract]
public class TUEF
{
[DataMember]
public string SegmentTag { get; set; }
[DataMember]
public string Version { get; set; }
[DataMember]
public string MemberReferenceNumber { get; set; }
}
应用程序:(不工作)
CibilWcfService.CIBIL obj = new CibilWcfService.CIBIL();
CibilWcfService.CibilEnquiry CibilEnquiryEnq = new CibilWcfService.CibilEnquiry();
CibilEnquiryEnq.Tuef.Version = "1111"; // null reference error here and Tuef is null
应用程序:(工作)
CibilWcfService.CIBIL obj = new CibilWcfService.CIBIL();
CibilWcfService.CibilEnquiry CibilEnquiryEnq = new CibilWcfService.CibilEnquiry();
CibilEnquiryEnq.Tuef = new CibilWcfService.TUEF();
CibilEnquiryEnq.Tuef.Version = "1111";//works fine
我不明白为什么我必须添加 CibilEnquiryEnq.Tuef = new CibilWcfService.TUEF(); 才能完成这项工作。我已经在我的 wcf 的构造函数中初始化了 tuef。
我在控制台应用程序(不包括 wcf)中创建了一个示例,它在没有 Tuef = new TUEF(); 的情况下运行良好,在构造函数中初始化就足够了。
【问题讨论】: