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

C# 什么经过序列化?

C# 什么经过序列化?,c#,.net,serialization,C#,.net,Serialization,一个愚蠢的问题,但仍然: 在C#中,当我将一个对象从一台机器传递到另一台机器时,目标端有什么可用的 只有公众成员?财产?方法?还有什么?取决于序列化方法。BinaryFormatter接受所有内容(即ISerializable),而XmlSerializer只接受带有setter的公共属性和字段(默认情况下)。取决于序列化方法。BinaryFormatter接受所有内容(即ISerializable),xmlserializer只接受带有setter的公共属性和字段(默认情况下)。需要了解的重要

一个愚蠢的问题,但仍然:

在C#中,当我将一个对象从一台机器传递到另一台机器时,目标端有什么可用的


只有公众成员?财产?方法?还有什么?

取决于序列化方法。
BinaryFormatter
接受所有内容(即
ISerializable
),而
XmlSerializer
只接受带有setter的公共属性和字段(默认情况下)。

取决于序列化方法。
BinaryFormatter
接受所有内容(即
ISerializable
),
xmlserializer
只接受带有setter的公共属性和字段(默认情况下)。

需要了解的重要一点是,反序列化对象的类型定义必须在目标位置可用

序列化只生成数据。全部或部分。反序列化过程根据接收端的类型定义构造对象,并根据反序列化数据填充对象


尝试反序列化未定义的类型或在接收端具有不同定义的类型是值得的。

需要意识到的重要一点是,要反序列化的对象的类型定义必须在目标端可用

序列化只生成数据。全部或部分。反序列化过程根据接收端的类型定义构造对象,并根据反序列化数据填充对象


尝试反序列化未定义的类型或在接收端具有不同定义的类型是值得的。

当然没有理由序列化方法哪种序列化?有不止一种。如何将对象从一台机器传递到另一台机器?方法不止一种。当然没有理由序列化方法。什么样的序列化?有不止一种。如何将对象从一台机器传递到另一台机器?有不止一种方式。公共财产-你是指它们的当前状态还是实际上是财产本身?这意味着,如果属性执行其他逻辑,则在调用时会在目标上调用它吗?XmlDeserializer将调用对象的setter并执行指定的任何逻辑。@Elad序列化仅获取数据;默认情况下,
BinaryFormatter
接受字段。逻辑是“远程处理”@MarcGravel你不同意Magnus吗?@Elad除非你非常清楚地告诉我们你在使用什么序列化方法,否则无法回答这个问题。副作用各不相同
XmlSerializer
确实会为属性运行setter,但它甚至不一定与原始类型相同(因为它是基于契约的)<代码>二进制格式化程序涉及字段
DataContractSerializer
绕过构造函数(
XmlSerializer
执行构造函数)。其他一些序列化程序可以选择与任何内置的序列化程序类似。公共属性-您是指它们的当前状态还是实际上是属性本身?这意味着,如果属性执行其他逻辑,则在调用时会在目标上调用它吗?XmlDeserializer将调用对象的setter并执行指定的任何逻辑。@Elad序列化仅获取数据;默认情况下,
BinaryFormatter
接受字段。逻辑是“远程处理”@MarcGravel你不同意Magnus吗?@Elad除非你非常清楚地告诉我们你在使用什么序列化方法,否则无法回答这个问题。副作用各不相同
XmlSerializer
确实会为属性运行setter,但它甚至不一定与原始类型相同(因为它是基于契约的)<代码>二进制格式化程序涉及字段
DataContractSerializer
绕过构造函数(
XmlSerializer
执行构造函数)。其他一些序列化程序可以选择与任何内置序列化程序类似。