5 // Peter Van Isacker (sclytrack@planetinternet.be)
6 // Rafael Teixeira (rafaelteixeirabr@hotmail.com)
8 // (C) 2003 Peter Van Isacker
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 using System.ComponentModel;
38 namespace System.Messaging
40 [DesignerAttribute ("System.Messaging.Design.MessageDesigner, " + Consts.AssemblySystem_Design)]
41 public class Message: Component
43 private readonly IMessage delegateMessage;
44 private IMessageFormatter formatter;
45 //private int bodyType = 0;
50 public Message() : this (CreateMessage (), null, null)
54 public Message (object body) : this (CreateMessage (), body, null)
58 public Message (object body, IMessageFormatter formatter)
59 : this (CreateMessage (), body, formatter)
63 internal Message (IMessage delegateMessage, object body,
64 IMessageFormatter formatter)
66 this.delegateMessage = delegateMessage;
68 this.formatter = formatter;
71 #endregion //Constructor
74 public static readonly TimeSpan InfiniteTimeout;
78 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
80 [MessagingDescription ("MsgAcknowledgeType")]
81 public AcknowledgeTypes AcknowledgeType {
83 return (AcknowledgeTypes) delegateMessage.AcknowledgeType;
86 delegateMessage.AcknowledgeType = (Mono.Messaging.AcknowledgeTypes) value;
90 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
92 [MessagingDescription ("MsgAcknowledgement")]
93 public Acknowledgment Acknowledgment {
95 return (Acknowledgment) (int) delegateMessage.Acknowledgment;
99 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
101 [MessagingDescription ("MsgAdministrationQueue")]
102 public MessageQueue AdministrationQueue {
104 if (delegateMessage.AdministrationQueue == null)
107 return new MessageQueue
108 (delegateMessage.AdministrationQueue);
111 delegateMessage.AdministrationQueue
112 = value.DelegateQueue;
116 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
118 [MessagingDescription ("MsgAppSpecific")]
119 public int AppSpecific {
120 get { return delegateMessage.AppSpecific; }
121 set { delegateMessage.AppSpecific = value; }
124 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
125 [MessagingDescription ("MsgArrivedTime")]
126 public DateTime ArrivedTime {
127 get { return delegateMessage.ArrivedTime; }
130 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
132 [MessagingDescription ("MsgAttachSenderId")]
133 public bool AttachSenderId {
134 get { return delegateMessage.AttachSenderId; }
135 set { delegateMessage.AttachSenderId = value; }
138 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
139 [MessagingDescription ("MsgAuthenticated")]
140 public bool Authenticated {
141 get { return delegateMessage.Authenticated; }
144 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
146 [MessagingDescription ("MsgAuthenticationProviderName")]
147 public string AuthenticationProviderName {
148 get { return delegateMessage.AuthenticationProviderName; }
149 set { delegateMessage.AuthenticationProviderName = value; }
152 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
154 [MessagingDescription ("MsgAuthenticationProviderType")]
155 public CryptographicProviderType AuthenticationProviderType {
157 return (CryptographicProviderType)
158 delegateMessage.AuthenticationProviderType;
161 delegateMessage.AuthenticationProviderType =
162 (Mono.Messaging.CryptographicProviderType) value;
166 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
170 if (body == null && delegateMessage.BodyStream == null)
172 else if (body == null)
173 body = formatter.Read (this);
177 set { body = value; }
180 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
182 [Editor ("System.ComponentModel.Design.BinaryEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
183 [MessagingDescription ("MsgBodyStream")]
184 public Stream BodyStream {
185 get { return delegateMessage.BodyStream; }
186 set { delegateMessage.BodyStream = value; }
189 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
190 [MessagingDescription ("MsgBodyType")]
192 public int BodyType {
193 get { return delegateMessage.BodyType; }
194 set { delegateMessage.BodyType = value; }
197 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
199 [MessagingDescription ("MsgConnectorType")]
200 public Guid ConnectorType {
201 get { return delegateMessage.ConnectorType; }
202 set { delegateMessage.ConnectorType = value; }
205 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
207 [MessagingDescription ("MsgCorrelationId")]
208 public string CorrelationId {
209 get { return delegateMessage.CorrelationId; }
210 set { delegateMessage.CorrelationId = value; }
213 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
214 [MessagingDescription("MsgDestinationQueue")]
215 public MessageQueue DestinationQueue {
217 return new MessageQueue(delegateMessage.DestinationQueue);
221 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
223 [MessagingDescription("MsgDestinationSymmetricKey")]
224 public byte[] DestinationSymmetricKey {
225 get { return delegateMessage.DestinationSymmetricKey; }
226 set { delegateMessage.DestinationSymmetricKey = value; }
229 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
231 [MessagingDescription("MsgDigitalSignature")]
232 public byte[] DigitalSignature {
233 get { return delegateMessage.DigitalSignature; }
234 set { delegateMessage.DigitalSignature = value; }
237 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
239 [MessagingDescription("MsgEncryptionAlgorithm")]
240 public EncryptionAlgorithm EncryptionAlgorithm {
242 return (EncryptionAlgorithm) delegateMessage.EncryptionAlgorithm;
245 delegateMessage.EncryptionAlgorithm =
246 (Mono.Messaging.EncryptionAlgorithm) value;
250 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
252 [MessagingDescription("MsgExtension")]
253 public byte[] Extension {
254 get { return delegateMessage.Extension; }
255 set { delegateMessage.Extension = value; }
258 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
260 public IMessageFormatter Formatter {
261 get { return formatter; }
262 set { formatter = value; }
265 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
267 [MessagingDescription("MsgHashAlgorithm")]
268 public HashAlgorithm HashAlgorithm {
270 return (HashAlgorithm) delegateMessage.HashAlgorithm;
273 delegateMessage.HashAlgorithm =
274 (Mono.Messaging.HashAlgorithm) value;
278 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
280 [MessagingDescription("MsgId")]
282 get { return delegateMessage.Id; }
285 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
286 [MessagingDescription("MsgIsFirstInTransaction")]
287 public bool IsFirstInTransaction {
288 get { return delegateMessage.IsFirstInTransaction; }
291 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
292 [MessagingDescription("MsgIsLastInTransaction")]
293 public bool IsLastInTransaction {
294 get { return delegateMessage.IsLastInTransaction; }
297 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
299 [MessagingDescription("MsgLabel")]
300 public string Label {
301 get { return delegateMessage.Label; }
302 set { delegateMessage.Label = value; }
305 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
306 [MessagingDescription("MsgMessageType")]
307 public MessageType MessageType {
309 return (MessageType) delegateMessage.MessageType;
313 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
315 [MessagingDescription("MsgPriority")]
316 public MessagePriority Priority {
318 return (MessagePriority) delegateMessage.Priority;
321 delegateMessage.Priority = (Mono.Messaging.MessagePriority) value;
325 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
327 [MessagingDescription("MsgRecoverable")]
328 public bool Recoverable {
329 get { return delegateMessage.Recoverable; }
330 set { delegateMessage.Recoverable = value; }
333 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
335 [MessagingDescription("MsgResponseQueue")]
336 public MessageQueue ResponseQueue {
338 if (delegateMessage.ResponseQueue == null)
341 return new MessageQueue
342 (delegateMessage.ResponseQueue);
345 delegateMessage.ResponseQueue
346 = value.DelegateQueue;
350 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
352 [MessagingDescription("MsgSenderCertificate")]
353 public byte[] SenderCertificate {
354 get { return delegateMessage.SenderCertificate; }
355 set { delegateMessage.SenderCertificate = value; }
358 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
359 [MessagingDescription ("MsgSenderId")]
360 public byte[] SenderId {
361 get { return delegateMessage.SenderId; }
364 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
366 [MessagingDescription ("MsgSenderVersion")]
367 public long SenderVersion {
368 get { return delegateMessage.SenderVersion; }
371 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
373 [MessagingDescription ("MsgSentTime")]
374 public DateTime SentTime {
375 get { return delegateMessage.SentTime; }
378 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
379 [MessagingDescription ("MsgSourceMachine")]
380 public string SourceMachine {
381 get { return delegateMessage.SourceMachine; }
384 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
386 [MessagingDescription ("MsgTimeToBeReceived")]
387 [TypeConverter (typeof(TimeoutConverter))]
388 public TimeSpan TimeToBeReceived {
389 get { return delegateMessage.TimeToBeReceived; }
390 set { delegateMessage.TimeToBeReceived = value; }
393 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
395 [MessagingDescription ("MsgTimeToReachQueue")]
396 [TypeConverter (typeof(TimeoutConverter))]
397 public TimeSpan TimeToReachQueue {
398 get { return delegateMessage.TimeToReachQueue; }
399 set { delegateMessage.TimeToReachQueue = value; }
402 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
403 [MessagingDescription ("MsgTransactionId")]
404 public string TransactionId {
405 get { return delegateMessage.TransactionId; }
408 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
410 [MessagingDescription ("MsgTransactionStatusQueue")]
411 public MessageQueue TransactionStatusQueue {
413 return new MessageQueue(delegateMessage.TransactionStatusQueue);
416 delegateMessage.TransactionStatusQueue = value.DelegateQueue;
420 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
422 [MessagingDescription ("MsgUseAuthentication")]
423 public bool UseAuthentication {
424 get { return delegateMessage.UseAuthentication; }
425 set { delegateMessage.UseAuthentication = value; }
428 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
430 [MessagingDescription ("MsgUseDeadLetterQueue")]
431 public bool UseDeadLetterQueue {
432 get { return delegateMessage.UseDeadLetterQueue; }
433 set { delegateMessage.UseDeadLetterQueue = value; }
436 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
438 [MessagingDescription ("MsgUseEncryption")]
439 public bool UseEncryption {
440 get { return delegateMessage.UseEncryption; }
441 set { delegateMessage.UseEncryption = value; }
444 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
446 [MessagingDescription ("MsgUseJournalQueue")]
447 public bool UseJournalQueue {
448 get { return delegateMessage.UseJournalQueue; }
449 set { delegateMessage.UseJournalQueue = value;}
452 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
454 [MessagingDescription ("MsgUseTracing")]
455 public bool UseTracing {
456 get { return delegateMessage.UseTracing; }
457 set { delegateMessage.UseTracing = value; }
460 internal IMessage DelegateMessage {
461 get { return delegateMessage; }
464 #endregion //Properties
466 internal static IMessage CreateMessage ()
468 return MessagingProviderLocator.GetProvider ()