从接口强制执行可序列化而不强制类在C#中自定义序列化

Wil*_*llH 11 c# serialization interface

我有一个接口,定义了一些我希望某些类实现的方法.

public interface IMyInterface
{
    MethodA;
    MethodB;
}

另外,我希望实现此接口的所有类都可以序列化.如果我更改接口定义以实现ISerializable如下...:

public interface IMyInterface : ISerializable
{
    MethodA;
    MethodB;
}

...据我所知,所有类现在必须显式实现序列化,因为如果实现ISerializable,则必须实现GetObjectData成员(以及反序列化所需的构造函数).

如何坚持使用我的界面的类是可序列化的,但不强制他们自定义实现序列化?

谢谢,威尔

Thr*_*505 10

似乎没有办法做到这一点,但我希望有.

请注意两件事:

  • 所述Serializable属性不能从基类继承,即使基类被标记为抽象的.

  • 从技术上讲,您 不需要Serializable属性,因为它使用的是XmlSerializer,因为它没有使用对象图.


Wil*_*llH 0

感谢您的回复。如果能够强制从接口派生的类实现序列化,然后强制它们进行自定义序列化,那就太好了,但这似乎不可能。