Serialization 序列化是否允许Flyweight设计模式?

Serialization 序列化是否允许Flyweight设计模式?,serialization,flyweight-pattern,Serialization,Flyweight Pattern,我正在使用一个复杂的对象设计,其中我使用Flyweight模式来限制类的多个实例之间的某些非静态变量。如果两个对象(flyweight信息和包含它的类)都是可序列化的,并且这些卡的列表从wcf服务传输到客户端,客户端是否维护该模式(即对于更高类的多个实例,仅保留flyweight信息的一个副本)?我将在下面给出一个简单的代码示例,以防我不能很好地解释自己 public class Flyweight { public Image image; } public class SmallO

我正在使用一个复杂的对象设计,其中我使用Flyweight模式来限制类的多个实例之间的某些非静态变量。如果两个对象(flyweight信息和包含它的类)都是可序列化的,并且这些卡的列表从wcf服务传输到客户端,客户端是否维护该模式(即对于更高类的多个实例,仅保留flyweight信息的一个副本)?我将在下面给出一个简单的代码示例,以防我不能很好地解释自己

public class Flyweight
{
    public Image image;
}

public class SmallObject
{
    public Flyweight fly;
}

其中,列表包含50多个小型对象,但使用Flyweight图案仅为每个单独类型的对象创建足够的图像。它不能是静态变量,因为由于设计限制,有不同类型的小对象不能用子类表示。我需要知道的是,客户是否接收到50多个离散的Flyweight对象,或者是否保持了模式,并且他只接收到每种类型的1个Flyweight对象。

不保持模式。您需要使用[OnDeserialized]手动重新构建所需的引用