基本上,当通过网络返回 YoyoData
类型的对象时,下面的代码是否应该工作并序列化 string Yoyo
。
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
所以对我来说将无法按预期工作。
关于c# - 在接口(interface)中定义序列化数据成员,然后在实现所述接口(interface)的类中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11768451/