CS: Marshalling and Unmarshalling, Serialization and Unserialization

Posted 鱼悠游

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS: Marshalling and Unmarshalling, Serialization and Unserialization相关的知识,希望对你有一定的参考价值。

Link1:

https://en.wikipedia.org/wiki/Marshalling_(computer_science)

Quote:

"

 

Comparison with serialization

To "serialize" an object means to convert its state into a byte stream in such a way that the byte stream can be converted back into a copy of the object.

The term "marshal" is considered to be synonymous with "serialize" in the Python standard library,[5] but the terms are not synonymous in the Java-related RFC 2713:

To "marshal" an object means to record its state and codebase(s)[note 1] in such a way that when the marshalled object is "unmarshalled", a copy of the original object is obtained, possibly by automatically loading the class definitions of the object. You can marshal any object that is serializable or remote. Marshalling is like serialization, except marshalling also records codebases. Marshalling is different from serialization in that marshalling treats remote objects specially. (RFC 2713)

 

Link2:

http://stackoverflow.com/questions/770474/what-is-the-difference-between-serialization-and-marshaling

Quote:

"

161 down vote accepted

 

Marshaling and serialization are loosely synonymous in the context of remote procedure call, but semantically different as a matter of intent.

In particular, marshaling is about getting parameters from here to there, while serialization is about copying structured data to or from a primitive form such as a byte stream. In this sense, serialization is one means to perform marshaling, usually implementing pass-by-value semantics.

It is also possible for an object to be marshaled by reference, in which case the data "on the wire" is simply location information for the original object. However, such an object may still be amenable to value serialization.

As @Bill mentions, there may be additional metadata such as code base location or even object implementation code.(?)

以上是关于CS: Marshalling and Unmarshalling, Serialization and Unserialization的主要内容,如果未能解决你的问题,请参考以下文章

jboss Marshalling, 服务端收不到消息

处理来自 C++ DLL 的用户定义异常 - .NET PInvoke/Marshalling

Spray 不会将我的案例类转换为 json 并期待一个 spray.httpx.marshalling.ToResponseMarshallable

netty编解码之jboss marshalling

C# Marshalling double* 从 C++ DLL?

COM接口 c# marshalling array of arrays