【发布时间】:2019-09-20 09:26:04
【问题描述】:
我有 2 个项目。一个是 WPF 应用程序,第二个是我的“工具包”,其中包含预定义的 WPF 控件、XML 反序列化和一些基本配置类。
在我的工具包中,我有一个 ConfigurationBase 类:
public class ConfigurationBase : XmlDeserializeConfigSectionHandler
{
public GuiConfigurationBase GuiConfiguration { get; set; }
}
这是GuiConfigurationBase
public class GuiConfigurationBase
{
public int LogLineCount { get; set; }
}
我的工具包包含应用程序日志消息的预定义视图。所以我的LogViewModel 构造函数需要一个ConfigurationBase,它应该包含GuiConfiguration 和LogLineCount 属性。
这是因为我不想在每个应用程序的应用程序日志中实现。
然后我有一个 WPF 项目。它包含一个派生自ConfigurationBase 的类Config。它使用其他一些不重要的道具进行了扩展。
我还需要扩展GuiConfigurationBase,所以我有一个名为GuiConfiguration 的类,它派生自GuiConfigurationBase。
public class Config : ConfigurationBase
{
public string AppName { get; set; }
}
public class GuiConfiguration : GuiConfigurationBase
{
public int TextSize { get; set; }
}
我还使用 XmlSerializer 来反序列化我的 XML 文件。我需要填写我的两个派生类。
请问我该如何实现?
我尝试了一些基类的抽象,但没有成功。
感谢您的任何建议。
【问题讨论】:
-
错字警告:它的拼写是 to derived / derived - 不是“to derrive / derived” - 一个“r”就足够了
-
只要引用的类都是可序列化的,你应该能够反序列化。
标签: c# xml inheritance deserialization abstract