如何允许类仅在可序列化时实现接口?

时间:2012-07-27 10:16:05

标签: c# .net

假设我有一个名为“XMLControl”的接口,我需要实现它的每个类也实现ISerializable。有没有OO方法来强制这个?

也可以将XMLControl作为抽象类,尽管稍微不太优选。什么是最好的方法?

我正在考虑将静态方法放在XMLControl中,如下所示:

static void LoadFromXML(SerializableClass);

但寻找更好的想法。

感谢。

1 个答案:

答案 0 :(得分:11)

您可以使XMLControl接口实现ISerializable接口:

public interface IXmlControl: ISerializable
{
    ...
}

这样,您强制IXmlControl接口的所有实现者也实现ISerializable

另请注意,标准.NET命名约定规定接口名称应以大写I开头。因此,最好将此接口称为IXmlControl