好吧,我认为标题本身就解释了。

我正在尝试导出配置对象的导线,但是看起来很困难,该类是不可序列化的,并且是……密封的,因此这里没有遗产。

就像任何人以前做过这样的事情吗?

问候

有帮助吗?

解决方案 3

好吧,我想我为这个问题找到了一个很好的解决方案。它通过序列化部分而不是配置对象本身来传递。因此,为了确保所有的部分都需要序列化/避难所化,我将它们全部包裹在一起。我完成了这项工作,允许我导出和导入设置陷入WCF服务或直接在文件中。这是我使用的代码:

配置部分基类:

public abstract class ConfigurationSectionBase : ConfigurationSection
{
    public string Serialize()
    {
        return SerializeSection(null, Name, ConfigurationSaveMode.Minimal);
    }

    public void Deserialize(string configuration)
    {
        XmlReader reader = XmlReader.Create(new StringReader(configuration));
        if (!reader.ReadToFollowing(Name)) return;
        StringBuilder stringBuilder = new StringBuilder().Append(reader.ReadOuterXml());
        var stringReader = new StringReader(stringBuilder.ToString());
        reader = XmlReader.Create(stringReader);
        DeserializeSection(reader);
    }
}        

希望它能帮助某人...

问候

其他提示

您将不得不摘下您真正需要的位,将它们放入一个可序列化的单独类中 [DataContract][DataMember] WCF序列化的属性,然后您需要在另一端进行反面。

WCF仅传输数据 - 以XML格式序列化。如果您无法按原样序列化数据,则需要自己解决 - 没有魔术子弹可以换句话说...

为了减轻从一个班级复制许多属性的痛苦,我建议使用某些图书馆 汽车应用程序 这可以消除许多无聊的,重复的代码,从一个对象分配到另一个对象。

该类更像是访问应用程序的配置文件的通行证。序列化它并没有多大意义,但是您可能要做的就是将其从中撤出,然后将它们塞入您控制的新课程中。然后,您要做的就是确保新类是可序列化的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top