Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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# 序列化ComponentModel.Container?_C#_Serialization_Containers_Serializable_Componentmodel - Fatal编程技术网

C# 序列化ComponentModel.Container?

C# 序列化ComponentModel.Container?,c#,serialization,containers,serializable,componentmodel,C#,Serialization,Containers,Serializable,Componentmodel,可以序列化(二进制)System.ComponentModel.Container吗?不,它没有标记为可序列化。您在这里真正想做什么?如前所述,除非类型是可序列化的,否则不能使用 BinaryFormatter ,但还需要考虑容器中可能包含的所有内容。它们还需要可序列化 您可以通过不使用BinaryFormatter来解决“必须[Serializable]”问题,但大多数其他序列化程序(例如XmlSerializer)都会遇到事先不知道所有子类以及不可设置属性之类的问题 如果你有正确的.NET版

可以序列化(二进制)System.ComponentModel.Container吗?

不,它没有标记为可序列化。

您在这里真正想做什么?如前所述,除非类型是可序列化的,否则不能使用<代码> BinaryFormatter <代码>,但还需要考虑容器中可能包含的所有内容。它们还需要可序列化

您可以通过不使用
BinaryFormatter
来解决“必须
[Serializable]
”问题,但大多数其他序列化程序(例如
XmlSerializer
)都会遇到事先不知道所有子类以及不可设置属性之类的问题


如果你有正确的.NET版本,你也可以考虑类似的事情,这可能会提供一些有趣的可能性。应用程序使用公共数据对象实现TCP通道。因为它是MarshallByRefObject,所以它必须是[Serializable]。我知道CompnonentModel.Container可以为它的嵌套容器和组件创建一个站点来进行通信——我只是对这种架构没有经验。我有一种感觉,我很快就会成功。组件和容器是将继承IComponent的自定义类。@dboarman-我认为您需要发送一个简单的数据模型(DTO或类似的),该模型表示要重新水化的数据;尝试从ComponentModel发送任何东西都不会有好的结果。我想ComponentModel并不是我想要的答案。我正在创建自定义的“组件”,它既是容器又是组件,构建一个树状结构。因此,我可能会创建从通用节点派生的自定义“组件”,以及一个使基本组件数据类型非常可互换的自定义接口。我甚至没有回答我自己的问题。