我有多个类可以存储用于不同用途的类似数据,我只是希望它们基于相同的基类并将所有数据序列化为XML,但我希望在序列化时更改元素名称。这是在C#。
我想使用类名来更容易阅读我的代码并且更容易实现。
public BaseMenuItem
{
public string ItemName;
public string ItemDescription
public string ItemAssetName;
public List<BaseMenuItem> SubMenuItems;
}
然后让其他项继承它并使用不同的元素名称对其进行序列化。 我目前有不同的类没有基类,但是使用相同的基类会使它更容易实现和更具可扩展性,所以我有点失去了如何实现我定义的变量的重写元素名称基类。
答案 0 :(得分:3)
在这种情况下,我会说“基类要求”会让你比它所提供的价值更痛苦。
如果您只使用基类来保存一些代码,即您不希望在子类中有额外的属性?如果是这样,只需输入并删除基类。以每个子类中增加一些额外的线为代价,你可以减少前进的痛苦。
如果出于编程原因需要基类?例如,特别是对基类执行操作(多态)。使用接口而不是基类。
无论哪种方式删除基类。
答案 1 :(得分:0)
很遗憾,您无法使用正在使用的序列化程序执行此操作。这些“默认”.NET序列化程序不灵活,速度慢,通常只在琐碎的情况下才有用。
您可以尝试使用其他序列化程序,或者在类上使用继承,但不能使用类的属性。如果您想要更改名称的许多元素,那么这可能不太有用。
实际上,我现在不确定。当我更加确定时,我会更新,我也有同样的问题。