2012-09-11 3 views
0

안녕 내 datacontract 상속이 있지만 서비스를 소모 할 때 마지막 멤버에 액세스 할 수 없습니다 :를 DataContract 상속 알 수없는 유형

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; } 
    } 
} 

이 때문에 소비 클래스에 내가 유형 '라벨'을 액세스 할 수 있지만 내가 할 수있는을 ' 그 'Content'속성을 얻지 못한다.

답변

2

당신은 으로 클래스의 해당 멤버를 두지 않았다 [DataMember를]

[DataContract] 
    public class Labelling : LabellingSearch 
    { 
     [DataMember] 
     public string Content { get; set; } 
    } 
+0

찰흙을 볼 수 없었다! (페이스 팔) –

1

Content 속성에 액세스 할 수 없으므로 DataMember이 아니기 때문에 직렬화되지 않았습니다. 추가 [DataMember] 속성

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

MSDN에 대한 DataMemberAttribute 클래스에서 : 형식의 멤버에 적용하면

는 회원이 데이터 계약의 일부이며 DataContractSerializer에 의해 직렬화 지정합니다.

+0

그것을 쳐다보고 있었다 너무 길고 그냥 –