C# DataContract继承类型未知
Hi my datacontract具有继承性,但在使用服务时无法访问最后一个成员:C# DataContract继承类型未知,c#,wcf,datacontract,C#,Wcf,Datacontract,Hi my datacontract具有继承性,但在使用服务时无法访问最后一个成员: namespace Services.SearchService { [DataContract] [KnownType(typeof(LabellingSearch))] public class SearchResult { [DataMember] public int ID { get; set; } [DataMemb
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; }
}
}
namespace Services.SearchService
{
[数据合同]
[KnownType(typeof(LabelingSearch))]
公共类搜索结果
{
[数据成员]
公共int ID{get;set;}
[数据成员]
公共字符串标题{get;set;}
[数据成员]
修改的公共日期时间{get;set;}
}
///
///标签内容数据的专家搜索结果
///
[数据合同]
[知识类型(类型(标签))]
公共类标签搜索:搜索结果
{
[数据成员]
公共字符串区域{get;set;}
[数据成员]
公共字符串国家{get;set;}
[数据成员]
公共字符串标签摘要{get;set;}
}
///
///完整标签内容数据
///
[数据合同]
公共类标签:标签搜索
{
公共字符串内容{get;set;}
}
}
因此,在消费类中,我可以访问类型'labeling',但无法访问其'Content'属性。您无法访问
内容
属性,因为它不是数据成员
,因此它没有序列化。添加[DataMember]
属性
[DataMember]
public string Content { get; set; }
从MSDN关于DataMemberAttribute类
应用于类型的成员时,指定该成员是数据协定的一部分,并且可由DataContractSerializer序列化
您无法访问
内容
属性,因为它不是数据成员
,所以它没有序列化。添加[DataMember]
属性
[DataMember]
public string Content { get; set; }
从MSDN关于DataMemberAttribute类
应用于类型的成员时,指定该成员是数据协定的一部分,并且可由DataContractSerializer序列化
您没有将该类成员设置为[DataMember]
[DataContract]
public class Labelling : LabellingSearch
{
[DataMember]
public string Content { get; set; }
}
您没有将该类成员设置为[DataMember]
[DataContract]
public class Labelling : LabellingSearch
{
[DataMember]
public string Content { get; set; }
}
一直盯着它看太久了,就是看不见它一直盯着它看太久了,就是看不见它