我有一个CibilResponse类,它具有类类型(TUEF类)的属性。
ICIBIL.cs
[ServiceContract]
public interface ICIBIL
{
[OperationContract]
string InsertCibil(CibilResponse cibilResponse);
[OperationContract]
string GenerateEnquiry(CibilEnquiry testObj);
}
[DataContract]
public class CibilResponse
{
[DataMember]
public string ResponseString { get; set; }
[DataMember]
public string Business { get; set; }
[DataMember]
public string MkrId { get; set; }
}
[DataContract]
public class CibilEnquiry
{
[DataMember]
public TUEF Tuef { get; set; }
}
[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();
CibilWcfService.TUEF objtuef = new CibilWcfService.TUEF();
objtuef.Version = "123";
CibilEnquiryEnq.Tuef = objtuef;
string res = obj.GenerateEnquiry(CibilEnquiryEnq);
正如您所看到的,我必须创建各种类的单个对象(在本例中为类objtuef
的对象TUEF
),然后将其分配给{{1}的对象CibilEnquiryEnq
}。class。
如果CibilResponse中有许多类型的成员,那将非常繁琐。初始化类成员的更好方法是什么?
我正在考虑在CibilResponse类中使用构造函数并将值指定为CibilEnquiry
,但它似乎没有工作,它给了我null引用错误。我仍然需要在我的应用程序中创建一个TUEF对象。
CibilEnquiryEnq.Tuef.Version = "123";
应用
public CibilEnquiry()
{
this.Tuef = new TUEF();
}
WCF ICIBIL.cs
CibilWcfService.CIBIL obj = new CibilWcfService.CIBIL();
CibilWcfService.CibilEnquiry CibilEnquiryEnq = new CibilWcfService.CibilEnquiry();
CibilEnquiryEnq.Tuef.Version = "1111";//null reference error
string res = obj.GenerateEnquiry(CibilEnquiryEnq);
答案 0 :(得分:2)
在构造函数中初始化它们的最佳方法,这是你在这里建议的。
创建参数化构造函数,并将这些参数传递给您的实例:
public CibilEnquiry(string segmentTag, string version, string memberReferenceNumber)
{
this.Tuef = new TUEF()
{
SegmentTag = segmentTag,
Version = version,
MemberReferenceNumber = memberReferenceNumber
};
//initialize all of your class properties here
//simply it is the purpose of constructor to properly initialize the instance
}
如果您不想通过构造函数传递值,只需在其中初始化实例并稍后分配值:
public class CibilEnquiry
{
public CibilEnquiry()
{
this.Tuef = new TUEF();
}
public TUEF Tuef { get; set; }
}
实例化课程:
CibilEnquiry enquiry = new CibilEnquiry();
enquiry.Tuef.Version = "123";