Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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_Reflection_Inheritance_Serialization - Fatal编程技术网

C# 如何创建基于继承的序列化机制?

C# 如何创建基于继承的序列化机制?,c#,.net,reflection,inheritance,serialization,C#,.net,Reflection,Inheritance,Serialization,我想创建一个序列化机制,处理各种实体,所有这些实体都是基于 在一些基类上。 现在我想使用DataContractSerializer,所以我需要用[DataContract]标记我的所有类。 但我不想这样做,因为这对我团队的其他成员来说是一个很大的犯错空间。相反,我想在我的基类上放置一个singel属性,而不必担心我添加的每个cals 实际上,我更喜欢从[DataContract]继承,如果我希望更改机制,我只需要更改我的继承属性,而不需要更改我的所有类(对于[DataMember])。 现在的

我想创建一个序列化机制,处理各种实体,所有这些实体都是基于 在一些基类上。 现在我想使用DataContractSerializer,所以我需要用[DataContract]标记我的所有类。 但我不想这样做,因为这对我团队的其他成员来说是一个很大的犯错空间。相反,我想在我的基类上放置一个singel属性,而不必担心我添加的每个cals

实际上,我更喜欢从[DataContract]继承,如果我希望更改机制,我只需要更改我的继承属性,而不需要更改我的所有类(对于[DataMember])。
现在的问题是DataContractAttribute是一个seald类

我想出了3个解决方案,但我不知道如何实现它们中的任何一个

首先,我听到一个嬉闹者说有一种方法可以从seald类继承,这将是一种非常好的方法,可以为我节省很多时间 很多绒毛

其次,我知道使用反射可以在运行时更改类并重新编译回运行时, 因此,我想创建on属性,并在运行时将所有自定义属性替换为
[数据合同]

第三个,使用某种预编译工具,将我的属性替换为[DataContract]

因此,如果你有一个如何实现这三个(第一和第三首选)中的任何一个的想法,或者如果你有一个其他的想法,那就太好了


谢谢。

嗯。。。。不要那样做。别这样。相信我

指导团队成员并按照设计使用框架。你将获得更多的里程数


word…

当前内置的.NET序列化有什么问题?我希望序列化属性被继承,[DataContract]不是继承的。当然DataContract是继承的属性。它不是一个继承类,而是一个seald类,我不能从它继承更多。我需要能够相对容易地改变机制,开始添加\删除\替换所有的entites属性只是为了复杂化,并留下错误的空间,我宁愿有一个地方有真正讨厌的代码,而很多地方没有那么漂亮的代码。这就是为什么如果我可以使用我自己的属性,我可以在自己的地方定义它,在整个代码中使用它,如果我将来需要更改它,我可以指定该类定义,而不必在代码中插入每个单独的属性。。。