//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.MsmqIntegration { using System.Messaging; using System.ServiceModel; using System.ServiceModel.Channels; [MessageContract(IsWrapped = false)] public sealed class MsmqMessage { [MessageProperty(Name = MsmqIntegrationMessageProperty.Name)] MsmqIntegrationMessageProperty property; public MsmqMessage(T body) { if (body == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("body"); this.property = new MsmqIntegrationMessageProperty(); this.property.Body = body; } internal MsmqMessage() { } public T Body { get { return (T)this.property.Body; } set { if (value == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); this.property.Body = value; } } public AcknowledgeTypes? AcknowledgeType { get { return this.property.AcknowledgeType; } set { this.property.AcknowledgeType = value; } } public Acknowledgment? Acknowledgment { get { return this.property.Acknowledgment; } } public Uri AdministrationQueue { get { return this.property.AdministrationQueue; } set { this.property.AdministrationQueue = value; } } public int? AppSpecific { get { return this.property.AppSpecific; } set { this.property.AppSpecific = value; } } public DateTime? ArrivedTime { get { return this.property.ArrivedTime; } } public bool? Authenticated { get { return this.property.Authenticated; } } public int? BodyType { get { return this.property.BodyType; } set { this.property.BodyType = value; } } public string CorrelationId { get { return this.property.CorrelationId; } set { this.property.CorrelationId = value; } } public Uri DestinationQueue { get { return this.property.DestinationQueue; } } public byte[] Extension { get { return this.property.Extension; } set { this.property.Extension = value; } } public string Id { get { return this.property.Id; } } public string Label { get { return this.property.Label; } set { this.property.Label = value; } } public MessageType? MessageType { get { return this.property.MessageType; } } public MessagePriority? Priority { get { return this.property.Priority; } set { this.property.Priority = value; } } public Uri ResponseQueue { get { return this.property.ResponseQueue; } set { this.property.ResponseQueue = value; } } public byte[] SenderId { get { return this.property.SenderId; } } public DateTime? SentTime { get { return this.property.SentTime; } } public TimeSpan? TimeToReachQueue { get { return this.property.TimeToReachQueue; } set { this.property.TimeToReachQueue = value; } } } }