0

こんにちは私のデータコントラクトには継承がありますが、サービスを利用するときに最後のメンバーにアクセスできません:

namespace Services.SearchService
{

    [DataContract]
    [KnownType(typeof(LabellingSearch))]
    public class SearchResult
    {
        [DataMember]
        public int ID { get; set; }

        [DataMember]
        public string Title { get; set; }

        [DataMember]
        public DateTime Modified { get; set; }
    }

    /// <summary>
    /// Specialist Search Result for Labelling Content Data
    /// </summary>
    [DataContract]
    [KnownType(typeof(Labelling))]
    public class LabellingSearch : SearchResult
    {
        [DataMember]
        public string Region { get; set; }

        [DataMember]
        public string Country { get; set; }

        [DataMember]
        public string LabelSummary { get; set; }
    }

    /// <summary>
    /// Full Labelling Content Data
    /// </summary>
    [DataContract]
    public class Labelling : LabellingSearch
    {
        public string Content { get; set; }
   }
}

そのため、消費クラスでは「Labelling」タイプにアクセスできますが、「Content」プロパティを取得できません。

4

2 に答える 2

2

そのクラスのメンバーを[DataMember]として配置しませんでした

[DataContract]
    public class Labelling : LabellingSearch
    {
        [DataMember]
        public string Content { get; set; }
   }
于 2012-09-11T12:02:30.173 に答える
1

Contentシリアル化されていないため、プロパティにアクセスできませんDataMember[DataMember]属性を追加

[DataMember]
public string Content { get; set; }

DataMemberAttributeクラスに関するMSDNから:

タイプのメンバーに適用される場合、メンバーがデータコントラクトの一部であり、DataContractSerializerによってシリアライズ可能であることを指定します。

于 2012-09-11T12:00:45.417 に答える