Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何允许类仅在可序列化时实现接口?_C#_.net - Fatal编程技术网

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

C# 如何允许类仅在可序列化时实现接口?,c#,.net,C#,.net,假设我有一个名为“XMLControl”的接口,我需要实现它的每个类也实现ISerializable。是否有任何面向对象的方法来强制实现这一点 也可以将XMLControl作为一个抽象类,尽管不太可取。最好的方法是什么 我想在XMLControl中放置一个静态方法,如下所示: 静态void LoadFromXML(SerializableClass) 但是寻找更好的想法 谢谢。您可以让XMLControl接口实现ISerializable接口: public interface IXmlCont

假设我有一个名为“XMLControl”的接口,我需要实现它的每个类也实现
ISerializable
。是否有任何面向对象的方法来强制实现这一点

也可以将XMLControl作为一个抽象类,尽管不太可取。最好的方法是什么

我想在XMLControl中放置一个静态方法,如下所示:

静态void LoadFromXML(SerializableClass)

但是寻找更好的想法


谢谢。

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

public interface IXmlControl: ISerializable
{
    ...
}
通过这种方式,您将强制
IXmlControl
接口的所有实现者也实现
ISerializable


还请注意,标准的.NET命名约定规定接口名称应以大写字母
I
开头。因此,这个接口最好被称为
IXmlControl

,尽管由于推荐的命名约定,我建议使用“IXmlControl”。就我个人而言,我会选择
IXmlControl