使不可序列化的供应商类可序列化

本文关键字:序列化 供应商 | 更新日期: 2023-09-27 18:06:38

我正在使用一个来自供应商的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;
    }