Tôi cần liên lạc với ứng dụng cũ từ ứng dụng C# của mình qua Hàng đợi Tin nhắn Windows.Làm cách nào để dừng System.Messaging.MessageQueue của tôi khỏi việc gói các chuỗi của tôi bằng XML?
Ứng dụng kế thừa mong đợi các chuỗi đồng bằng trong một hàng đợi riêng tư cụ thể, nhưng dường như tôi không thể dừng System.Messaging.MessageQueue khỏi gói tin nhắn của tôi trong XML!
Mã tôi là thử nghiệm rất đơn giản:
MessageQueue myQueue = new MessageQueue(@".\Private$\tolegacy");
Message msg = new Message("My Test String");
myQueue.Send(msg);
Vấn đề là thông điệp đang được XML serialized và xuất hiện trong hàng đợi như:
<?xml version="1.0"?><string>My Test String</string>
tôi không thể sửa đổi hành vi của ứng dụng cũ, vì vậy tôi cần phải dừng System.Messaging.MessageQueue khỏi định dạng thư của tôi dưới dạng XML.
Có ai giúp được không?
Viết trực tiếp lên BodyStream đã hoạt động, cảm ơn. Nó trông giống như sự thay đổi dễ nhất vì vậy tôi đã thử nó đầu tiên :) – Damovisa
Tôi đã viết một số bản thân mình và họ làm việc thực sự tốt. Điều duy nhất bạn phải lo lắng là người gửi và người nhận hiểu được loại cơ thể. –
Chúng tôi đang gặp sự cố tương tự. Chúng tôi có thể đọc/ghi hàng đợi và nhận lại tin nhắn. Nhưng khi nhà cung cấp đọc hàng đợi, anh ta thấy thêm "thứ" bao quanh thông điệp của chúng tôi. Làm thế nào chúng ta có thể viết một chuỗi đơn giản mà không có gói nào cả? Ngay cả BinaryFormatter cũng đã thêm một loạt các byte vào đầu chuỗi. – NealWalters