Commit 4f42525397cbea4c426ad5789d81499637cb1b92
1 parent
6cd93dfa
v1.22
-MSMQ Send és Read rutinok tisztába tétele
Showing
2 changed files
with
57 additions
and
51 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs
| @@ -16,6 +16,7 @@ using VRH.Common; | @@ -16,6 +16,7 @@ using VRH.Common; | ||
| 16 | using System.Xml.Linq; | 16 | using System.Xml.Linq; |
| 17 | using System.Text.RegularExpressions; | 17 | using System.Text.RegularExpressions; |
| 18 | using System.ComponentModel; | 18 | using System.ComponentModel; |
| 19 | +using System.IO; | ||
| 19 | 20 | ||
| 20 | namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | 21 | namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
| 21 | { | 22 | { |
| @@ -728,28 +729,15 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | @@ -728,28 +729,15 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | ||
| 728 | using (var msmq = new MessageQueue(msmqFullname)) | 729 | using (var msmq = new MessageQueue(msmqFullname)) |
| 729 | { | 730 | { |
| 730 | if (Count(msmq) == 0) { return null; } | 731 | if (Count(msmq) == 0) { return null; } |
| 731 | - | ||
| 732 | - //frmA = new System.Messaging.ActiveXMessageFormatter(); | ||
| 733 | - //frmA = new System.Messaging.BinaryMessageFormatter(); | ||
| 734 | - //frmA = new System.Messaging.XmlMessageFormatter(); | ||
| 735 | msmq.Formatter = messageformatter; | 732 | msmq.Formatter = messageformatter; |
| 736 | - | ||
| 737 | - Message m = msmq.Receive(new TimeSpan(0)); | ||
| 738 | - label = m.Label; | ||
| 739 | - //m.BodyStream.Position = 0; | ||
| 740 | - //var sr = new System.IO.StreamReader(m.BodyStream, encoding); | ||
| 741 | - //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | ||
| 742 | - // encoding = System.Text.Encoding.UTF8; | ||
| 743 | - // encoding = System.Text.Encoding.UTF7; | ||
| 744 | - // encoding = System.Text.Encoding.UTF32; | ||
| 745 | - // encoding = System.Text.Encoding.Unicode; | ||
| 746 | - // encoding = System.Text.Encoding.BigEndianUnicode; | ||
| 747 | - // encoding = System.Text.Encoding.ASCII; | ||
| 748 | - // encoding = System.Text.Encoding.Default; | ||
| 749 | - body = encoding.GetString((byte[])m.Body); | ||
| 750 | - return m; | 733 | + Message msg = msmq.Receive(new TimeSpan(0)); |
| 734 | + label = msg.Label; | ||
| 735 | + body = GetBody(msg, encoding); | ||
| 736 | + return msg; | ||
| 751 | } | 737 | } |
| 752 | } | 738 | } |
| 739 | + | ||
| 740 | + | ||
| 753 | public static Message ReadLast(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | 741 | public static Message ReadLast(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) |
| 754 | { | 742 | { |
| 755 | body = ""; | 743 | body = ""; |
| @@ -758,28 +746,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | @@ -758,28 +746,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | ||
| 758 | { | 746 | { |
| 759 | if (Count(msmq) == 0) { return null; } | 747 | if (Count(msmq) == 0) { return null; } |
| 760 | 748 | ||
| 761 | - //frmA = new System.Messaging.ActiveXMessageFormatter(); | ||
| 762 | - //frmA = new System.Messaging.BinaryMessageFormatter(); | ||
| 763 | - //frmA = new System.Messaging.XmlMessageFormatter(); | ||
| 764 | msmq.Formatter = messageformatter; | 749 | msmq.Formatter = messageformatter; |
| 765 | - //Message m = msmq.Receive(new TimeSpan(0)); | ||
| 766 | - var m = msmq.ReceiveByLookupId(MessageLookupAction.Last, 0, null); | ||
| 767 | - label = m.Label; | ||
| 768 | - body = encoding.GetString((byte[])m.Body); | ||
| 769 | - | ||
| 770 | - | ||
| 771 | - //m.BodyStream.Position = 0; | ||
| 772 | - | ||
| 773 | - //// encoding = System.Text.Encoding.UTF8; | ||
| 774 | - //// encoding = System.Text.Encoding.UTF7; | ||
| 775 | - //// encoding = System.Text.Encoding.UTF32; | ||
| 776 | - //// encoding = System.Text.Encoding.Unicode; | ||
| 777 | - //// encoding = System.Text.Encoding.BigEndianUnicode; | ||
| 778 | - //// encoding = System.Text.Encoding.ASCII; | ||
| 779 | - //// encoding = System.Text.Encoding.Default; | ||
| 780 | - //var sr = new System.IO.StreamReader(m.BodyStream, encoding); | ||
| 781 | - //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | ||
| 782 | - return m; | 750 | + var msg = msmq.ReceiveByLookupId(MessageLookupAction.Last, 0, null); |
| 751 | + label = msg.Label; | ||
| 752 | + body = GetBody(msg, encoding); | ||
| 753 | + return msg; | ||
| 783 | } | 754 | } |
| 784 | } | 755 | } |
| 785 | public static Message ReadById(string msmqFullname, long msgid, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | 756 | public static Message ReadById(string msmqFullname, long msgid, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) |
| @@ -791,23 +762,58 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | @@ -791,23 +762,58 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | ||
| 791 | if (Count(msmq) == 0) { return null; } | 762 | if (Count(msmq) == 0) { return null; } |
| 792 | 763 | ||
| 793 | msmq.Formatter = messageformatter; | 764 | msmq.Formatter = messageformatter; |
| 794 | - var m = msmq.ReceiveByLookupId(msgid); | ||
| 795 | - label = m.Label; | ||
| 796 | - body = encoding.GetString((byte[])m.Body); | ||
| 797 | - return m; | 765 | + var msg = msmq.ReceiveByLookupId(msgid); |
| 766 | + label = msg.Label; | ||
| 767 | + body = GetBody(msg, encoding); | ||
| 768 | + return msg; | ||
| 798 | } | 769 | } |
| 799 | } | 770 | } |
| 771 | + private static string GetBody(Message msg, Encoding encoding) | ||
| 772 | + { | ||
| 773 | + ////////////////////////////////////////////// | ||
| 774 | + StreamReader reader; | ||
| 775 | + string body; | ||
| 776 | + if (msg.Formatter is XmlMessageFormatter) | ||
| 777 | + { | ||
| 778 | + ((XmlMessageFormatter)msg.Formatter).TargetTypes = new Type[] { typeof(string), }; | ||
| 779 | + body = (string)msg.Body; | ||
| 780 | + } | ||
| 781 | + else | ||
| 782 | + { | ||
| 783 | + if (encoding == null) { body = (string)msg.Body; } | ||
| 784 | + else { reader = new StreamReader(msg.BodyStream, encoding); body = reader.ReadToEnd(); } | ||
| 785 | + } | ||
| 786 | + ////////////////////////////////////////////// | ||
| 787 | + //body = encoding.GetString((byte[])msg.Body); | ||
| 788 | + ////////////////////////////////////////////////// | ||
| 789 | + return body; | ||
| 790 | + } | ||
| 800 | public static void Send(string msmqFullname, string messagetosend, string messagelabel, IMessageFormatter messageformatter, Encoding encoding) | 791 | public static void Send(string msmqFullname, string messagetosend, string messagelabel, IMessageFormatter messageformatter, Encoding encoding) |
| 801 | { | 792 | { |
| 802 | using (var msmq = new MessageQueue(msmqFullname)) | 793 | using (var msmq = new MessageQueue(msmqFullname)) |
| 803 | { | 794 | { |
| 804 | - ///frmA = new System.Messaging.ActiveXMessageFormatter(); | ||
| 805 | - //enc = System.Text.Encoding.UTF8; | ||
| 806 | msmq.Formatter = messageformatter; | 795 | msmq.Formatter = messageformatter; |
| 807 | - byte[] encodedmessage = encoding.GetBytes(messagetosend); | ||
| 808 | - | ||
| 809 | - msmq.Send(encodedmessage, messagelabel); | 796 | + Message msg = new System.Messaging.Message(); |
| 797 | + SetBody(msg, messagetosend, messageformatter, encoding); | ||
| 798 | + msg.Label = messagelabel; | ||
| 799 | + msmq.Send(msg); | ||
| 800 | + } | ||
| 801 | + } | ||
| 802 | + private static Message SetBody(Message msg, string messagetosend, IMessageFormatter messageformatter, Encoding encoding) | ||
| 803 | + { | ||
| 804 | + ////////////////////////////////////////////////////////////////////////// | ||
| 805 | + msg.Formatter = messageformatter; | ||
| 806 | + if (msg.Formatter is XmlMessageFormatter) { msg.Body = messagetosend; } | ||
| 807 | + else | ||
| 808 | + { | ||
| 809 | + if (encoding == null) { msg.Body = messagetosend; } | ||
| 810 | + else { msg.BodyStream = new MemoryStream(encoding.GetBytes(messagetosend)); } | ||
| 810 | } | 811 | } |
| 812 | + ////////////////////////////////////////////////////////////////////////// | ||
| 813 | + //byte[] encodedmessage = encoding.GetBytes(messagetosend); | ||
| 814 | + //msmq.Send(encodedmessage, messagelabel); | ||
| 815 | + ////////////////////////////////////////////////////////////////////////// | ||
| 816 | + return msg; | ||
| 811 | } | 817 | } |
| 812 | public static long Count(MessageQueue messageQueue) | 818 | public static long Count(MessageQueue messageQueue) |
| 813 | { | 819 | { |
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
| @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | ||
| 32 | // You can specify all the values or you can default the Build and Revision Numbers | 32 | // You can specify all the values or you can default the Build and Revision Numbers |
| 33 | // by using the '*' as shown below: | 33 | // by using the '*' as shown below: |
| 34 | // [assembly: AssemblyVersion("1.0.*")] | 34 | // [assembly: AssemblyVersion("1.0.*")] |
| 35 | -[assembly: AssemblyVersion("1.21.0.0")] | ||
| 36 | -[assembly: AssemblyFileVersion("1.21.0.0")] | 35 | +[assembly: AssemblyVersion("1.22.0.0")] |
| 36 | +[assembly: AssemblyFileVersion("1.22.0.0")] |