C# 反序列化对象的好模式是什么?

C# 反序列化对象的好模式是什么?,c#,java,design-patterns,serialization,C#,Java,Design Patterns,Serialization,我有一个类imagine Entity,Entity类想提供反序列化方法,这个方法接受xml字符串,它将重建对象。 哪一个看起来更好? 1-具有接受xmlString参数的构造函数,并且存在反序列化实体。 2-有一个没有参数的构造函数,然后用xmlString调用反序列化方法。 3-实体中有一个静态方法接受xmString作为参数,并返回一个反序列化实体作为函数调用。 还是其他解决方案?都不是。对象根本不应该关心序列化/反序列化它们自己。这些操作应由专用于处理序列化逻辑的对象处理 这不仅使实体类

我有一个类imagine Entity,Entity类想提供反序列化方法,这个方法接受xml字符串,它将重建对象。 哪一个看起来更好? 1-具有接受xmlString参数的构造函数,并且存在反序列化实体。 2-有一个没有参数的构造函数,然后用xmlString调用反序列化方法。 3-实体中有一个静态方法接受xmString作为参数,并返回一个反序列化实体作为函数调用。
还是其他解决方案?

都不是。对象根本不应该关心序列化/反序列化它们自己。这些操作应由专用于处理序列化逻辑的对象处理


这不仅使
实体
类更易于使用,而且还使您的体系结构更加灵活,将来可以处理不同的序列化方法。请记住,应用程序中的解耦行为是好的。

两者都不是。对象根本不应该关心序列化/反序列化它们自己。这些操作应由专用于处理序列化逻辑的对象处理


这不仅使
实体
类更易于使用,而且还使您的体系结构更加灵活,将来可以处理不同的序列化方法。请记住,应用程序中的解耦行为是好的。

两者都不是。对象根本不应该关心序列化/反序列化它们自己。这些操作应由专用于处理序列化逻辑的对象处理


这不仅使
实体
类更易于使用,而且还使您的体系结构更加灵活,将来可以处理不同的序列化方法。请记住,应用程序中的解耦行为是好的。

两者都不是。对象根本不应该关心序列化/反序列化它们自己。这些操作应由专用于处理序列化逻辑的对象处理



这不仅使
实体
类更易于使用,而且还使您的体系结构更加灵活,将来可以处理不同的序列化方法。请记住,应用程序中的解耦行为是好的。

您的意思是每个对象都应该有另一个对象对其进行序列化/反序列化?@Mojtaba_Sarooghi-否。序列化是完全独立的。您的
实体
类不应该知道它的任何信息。这两者之间应该没有耦合。然后我必须弄清楚我应该如何序列化序列化程序中的每个对象(假设我不想使用属性),我的对象如何向序列化程序说明它要序列化的属性?自定义循环引用如何?如果我没弄错(我不这么认为:-),你是说另一个对象知道对实体的整个对象图进行反序列化?然后我们又有了耦合(序列化程序应该知道实体及其逻辑的细节)@Mojtaba_Sarooghi-这正是我要说的。序列化程序应该对要序列化的内容(公共字段)以及如何正确处理循环引用等有一些概念。所以这里我们有一些关于私有字段、打开/关闭原则以及逻辑分散的问题,还假设序列化程序应该了解对象图中的任何类。。。然后我会将反序列化程序放入对象中(以防我有元数据机会,我喜欢额外序列化程序的概念),但同意耦合。你是说每个对象都应该有另一个对象对其进行序列化/反序列化?@Mojtaba_Sarooghi-否。序列化是完全独立的。您的
实体
类不应该知道它的任何信息。这两者之间应该没有耦合。然后我必须弄清楚我应该如何序列化序列化程序中的每个对象(假设我不想使用属性),我的对象如何向序列化程序说明它要序列化的属性?自定义循环引用如何?如果我没弄错(我不这么认为:-),你是说另一个对象知道对实体的整个对象图进行反序列化?然后我们又有了耦合(序列化程序应该知道实体及其逻辑的细节)@Mojtaba_Sarooghi-这正是我要说的。序列化程序应该对要序列化的内容(公共字段)以及如何正确处理循环引用等有一些概念。所以这里我们有一些关于私有字段、打开/关闭原则以及逻辑分散的问题,还假设序列化程序应该了解对象图中的任何类。。。然后我会将反序列化程序放入对象中(以防我有元数据机会,我喜欢额外序列化程序的概念),但同意耦合。你是说每个对象都应该有另一个对象对其进行序列化/反序列化?@Mojtaba_Sarooghi-否。序列化是完全独立的。您的
实体
类不应该知道它的任何信息。这两者之间应该没有耦合。然后我必须弄清楚我应该如何序列化序列化程序中的每个对象(假设我不想使用属性),我的对象如何向序列化程序说明它要序列化的属性?自定义循环引用如何?如果我没弄错(我不这么认为:-),你是说另一个对象知道对实体的整个对象图进行反序列化?然后我们又有了耦合(序列化程序应该知道实体及其逻辑的细节)@Mojtaba_Sarooghi-这正是我要说的。序列化程序应该对要序列化的内容(公共字段)以及如何正确处理循环引用等有一些概念。所以这里我们有一些关于私有字段、打开/关闭原则以及逻辑分散的问题,还假设序列化程序应该了解对象图中的任何类。。。然后我将反序列化器放入对象中(以防我有元数据机会,我喜欢ext的概念)