簡體   English   中英

WCF中的復合類型錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM