У меня возникли проблемы с куском старого кода, который мне нужно внести, я добавил свойство Metadata, но не могу его разоблачить, код прост.Предоставление свойств реализации IList
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);
}
}
Когда я проверить приложение или сериализации в JSON, метаданные игнорируются и могут быть доступны только в том случае явного вызова.
IBigThing toReturn = new BigThingFactory.Manufacture();
string strJson = new JavaScriptSerializer().Serialize(toReturn);
Я уверен, что мне не хватает чего-то простого, может ли кто-нибудь помочь?
'BigThing' не реализует' IBigThing'. Это намеренно? – Andrei
Извиняется за Андрея, пропустил это. – Gavin
Какой тип сериализации? Вы сериализуете 'IList' или' IBigThing'? – Gusdor