[英]Composite Type error in WCF
WCF新手尋求幫助。 我在這里做錯了什么:ICardService
[ServiceContract(Namespace = "http://xxxx.xxxxxx.xxxx/xx/xxxxxx")]
interface ICardService
{
[OperationContract]
Coupon CreateCouponCard(string cardDefinitionCode);
}
public class CardService : ICardService
{
public Coupon CreateCouponCard(string cardDefinitionCode)
{
Coupon composite = new Coupon();
if (composite == null)
{
throw new ArgumentNullException("composite");
}
if (composite.BoolValue)
{
composite.PassTypeIdentifier="sdfsdf";
composite.Icon.DisplayGroup = "czxczxczx";
}
return composite;
}
}
[DataContract(Namespace = "")]
public class Coupon : CardCommonDefinition
{
[DataMember]
public string Description {get; set;}
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
}
[DataContract(Namespace = "")]
public class CardCommonDefinition
{
[DataMember]
public string PassTypeIdentifier {get; set;}
[DataMember]
public CardFieldDefinitionEntity Icon {get; set;}
}
[DataContract(Namespace = "")]
public class CardFieldDefinitionEntity
{
[DataMember]
public string DisplayGroup {get; set;}
}
當我運行它時,它在Composite.Icon.DisplayGroup =“ czxczxczx”處失敗; 對象未設置為對象的實例。
我沒有線索解決該問題,您能幫我嗎?
您可以通過兩種方法解決此問題。
使用前,請先初始化Icon
屬性。
public Coupon CreateCouponCard(string cardDefinitionCode)
{
Coupon composite = new Coupon();
if (composite == null)
{
throw new ArgumentNullException("composite");
}
if (composite.BoolValue)
{
composite.PassTypeIdentifier="sdfsdf";
composite.Icon = new CardFieldDefinitionEntity();
composite.Icon.DisplayGroup = "czxczxczx";
}
return composite;
}
二-擁有CardCommonDefinition
的構造CardCommonDefinition
並在其中初始化Icon
屬性,這樣您就不必擔心它為null。
[DataContract(Namespace = "")]
public class CardCommonDefinition
{
public CardCommonDefinition()
{
this.Icon = new CardFieldDefinitionEntity();
}
[DataMember]
public string PassTypeIdentifier {get; set;}
[DataMember]
public CardFieldDefinitionEntity Icon {get; set;}
}
[DataContract(Namespace = "")]
public class Coupon : CardCommonDefinition
{
public Coupon : base()
{ }
[DataMember]
public string Description {get; set;}
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.