c# - 将对象转换到实际类

标签 c# .net

我想知道当通过 MS 消息队列接收消息并将消息体转换为实际对象时会发生什么。

System.Messaging.Message msg = queue.Receive();

Order order = (Order)msg.Body;

正文包含一些 XML,但它的类型是对象。那么对象是在强制转换行用 XmlSerializer 序列化还是已经发生了?

或者更一般地说,序列化是否总是在将对象转换为实际类型时发生,还是没有生成额外的代码?

最佳答案

查看 System.Messaging.Message.Body您可以看到其类型为 Object 的属性。

这意味着 MSMQ 的消息传递框架会为您处理序列化/反序列化。

文档指出任何通过 Body 属性传递的对象都必须是可序列化的:

The Body property can be any serializable object, such as a text string, structure object, class instance, or embedded object.

当您转换为您的对象类型时,肯定不会进行序列化。

关于c# - 将对象转换到实际类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23655483/

相关文章:

c# - 如何同时运行两个具有不同返回类型的任务列表

C# 调用 MySQL 存储过程、函数的最佳方式

c# - Visual Studio 中的 Entity Framework : database is not created with DbContext base constructor

.net - 在运行时运行 MSBuild

c# - 如何判断方法是否访问默认值

c# - 我应该在 c# 变量中添加双引号以在 Razor 中添加 css 类吗?

c# - 映射 IDataReader 时未调用 AutoMapper TypeConverter

c# - 将 XML 反序列化为对象 - XML 文档 (0, 0) 中存在错误

c# - 基本c#问题

.net - MySqlCommand 参数不起作用