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);