C# 向IList实现公开属性

C# 向IList实现公开属性,c#,C#,我有一段旧代码需要修改,我添加了元数据属性,但无法公开它,代码很简单 public interface IBigThing : IList<ILittleThing> { string Metadata { get; set; } } [Serializable] public class BigThing: List<ILittleThing>, IBigThing , ISerializable { string m_M

我有一段旧代码需要修改,我添加了元数据属性,但无法公开它,代码很简单

public interface IBigThing : IList<ILittleThing>
{
    string Metadata { get; set; }
}   

[Serializable]
    public class BigThing: List<ILittleThing>, IBigThing , ISerializable
    {
        string m_Metadata;

        [DataMember]
        public string Metadata
        {
            get { return m_Metadata; }
            set { m_Metadata = value; }
        }

        #region Constructors
        public BigThing()
        { }

        public BigThing(string p_Metadata)
        {
            Metadata = p_Metadata;
        }
        #endregion



        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue("Metadata", Metadata);
        }
    }

我肯定我遗漏了一些简单的东西,有人能帮忙吗?

IBigThing
中的属性定义中添加
[DataMember]
属性。序列化框架只分析您告诉它的类型,因此在
BigThing

BigThing
没有实现
IBigThing
中不会看到任何声明。这是故意的吗?抱歉,安德烈,错过了。你在连载什么类型的?您是否正在序列化
IList
IBigThing
?@Gusdor我正在尝试序列化IBigThing,但列表似乎已序列化,元数据“丢失”。您能否向我们展示执行序列化的代码?
IBigThing toReturn = new BigThingFactory.Manufacture();
string strJson = new JavaScriptSerializer().Serialize(toReturn);