c# - 在接口(interface)中定义序列化数据成员,然后在实现所述接口(interface)的类中使用它

标签 c# .net json serialization

基本上,当通过网络返回 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/

相关文章:

json - Python 在读取 JSON 文件时抛出错误

c# - 为什么 C# 不允许在析构函数上使用访问修饰符?

c# - WCF 为 CustomBinding 中的 HttpTransportBindingElement 修改 ReaderQuotas

c# - 特性的最佳命名?

jquery - 从 Google Charts 解析 Json

c# - 如何将任意 json 对象发布到 webapi

c# - 另一个 LINQ 查询中的 LINQ 过滤器列表

c# - 使用 .NET Core 3.1 搜索网络上的所有 SQL Server 实例

c# - Unityscript/Javascript 是否已停产?

c# - 查找对类和方法的引用