我正在使用一个来自供应商的DLL的类,它不是XML可序列化的,因为其中一个类成员是接口。
但是,我确实需要序列化类的一个实例。
我如何告诉XmlSerializer忽略接口并序列化其他所有内容?
你可以做两件事:
1)用你想要的所有东西创建一个类,用你的供应商类填充它,然后序列化它。
检查适配器设计模式
2)使用Json.Net。一旦我需要序列化包含元数据的IPagedList我这样做了:
public static string SerializePagedList(IPagedList<T> pagedList)
{
string result = JsonConvert.SerializeObject(
// new anonymous class with everything I wanted
new
{
Items = pagedList,
MetaData = pagedList.GetMetaData()
},
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
return result;
}