基本上,当通过网络返回 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 所以对我来说它不会按预期工作。

10-08 13:17