gpt4 book ai didi

c# - 从 C# 发送到 MSMQ 队列时出现 CS0122 错误的原因和解决方案是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:57 26 4
gpt4 key购买 nike

使用 MessageQueue(string queuePath) 构造函数创建 System.Messaging.MessageQueue 后,尝试使用 MessageQueue.Send(obj) 会导致“无法生成临时类(结果=1)”异常以及附加文本: 'error CS0122: 'System.__ComObject' is unaccessible due to its protection level'。

队列本身对每个人都有完全的控制权。当查询 MessageQueue 对象的读写权限时,它返回 SendAndReceive。导致此错误的原因是什么?您如何解决?

最佳答案

哦,太棒了,运行时错误和编译时错误混合在一起。 MessageQueue 使用 XML 序列化来序列化不是 Message 的对象。如果您没有在构建时使用 sgen.exe 创建序列化程序集(您真的应该),那么它会在运行时生成程序集。

显然失败了,无论您传递给 Send() 的什么对象都不支持 XML 序列化。从错误消息来看,这可能是因为它不是一个简单的 .NET 类。通过使它成为一个简单的 .NET 类来解决它,一个在 XmlSerializer.Serialize() 中存在并返回的类。

关于c# - 从 C# 发送到 MSMQ 队列时出现 CS0122 错误的原因和解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com