基本上,当通过网络返回 string Yoyo
类型的对象时,下面的代码是否应该工作并序列化 YoyoData
。
public interface IHelloV1
{
#region Instance Properties
[DataMember(Name = "Yoyo")]
string Yoyo { get; set; }
#endregion
}
[DataContract(Name = "YoyoData", Namespace = "http://hello.com/1/IHelloV1")]
public class YoyoData : IHelloV1
{
string Yoyo { get; set; }
public YoyoData()
{
Yoyo = "whatever";
}
}
}
最佳答案
我认为不会。DataMember
属性不会在派生类中继承。
有关更多详细信息,请参阅 DataMemberAttribute
类型的文档及其定义方式: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute.aspx 。
此属性指定属性 Inherited = false
意味着该属性不会传播到派生类。
另请参阅 http://msdn.microsoft.com/en-us/library/84c42s56(v=vs.71).aspx 以获取有关属性的 Inherited
属性的更多详细信息。
无论如何,这意味着在您定义 DataContract
的类中,属性 Yoyo
不会被视为 DataMember
所以对我来说它不会按预期工作。