本文整理汇总了C#中IDestination.Equals方法的典型用法代码示例。如果您正苦于以下问题:C# IDestination.Equals方法的具体用法?C# IDestination.Equals怎么用?C# IDestination.Equals使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDestination
的用法示例。
在下文中一共展示了IDestination.Equals方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Send
public void Send(IDestination destination, IMessage imessage, bool persistent, byte priority, TimeSpan timeToLive)
{
BaseMessage message = (BaseMessage) imessage;
MessageQueue mq=null;
MessageQueue responseQueue = null;
MessageQueueTransaction transaction = null;
try
{
// Locate the MSMQ Queue we will be sending to
if (messageQueue != null)
{
if( destination.Equals(this.destination) )
{
mq = messageQueue;
}
else
{
throw new NMSException("This producer can only be used to send to: " + destination);
}
}
else
{
mq = openMessageQueue((Destination) destination);
}
// Convert the Mesasge into a MSMQ message
message.NMSPersistent = persistent;
message.NMSExpiration = timeToLive;
message.NMSPriority = priority;
// message.NMSTimestamp = new DateTime().Date.;
Message msg = messageConverter.ToMsmqMessage(message);
// TODO: message.NMSMessageId =
// Now Send the message
if( mq.Transactional )
{
if (session.Transacted)
{
mq.Send(msg, session.MessageQueueTransaction);
} else
{
// Start our own mini transaction here to send the message.
transaction = new MessageQueueTransaction();
transaction.Begin();
mq.Send(msg, transaction);
transaction.Commit();
}
} else
{
if( session.Transacted )
{
// We may want to raise an exception here since app requested
// a transeced NMS session, but is using a non transacted message queue
// For now silently ignore it.
}
mq.Send(msg);
}
} finally
{
// Cleanup
if(transaction!=null)
{
transaction.Dispose();
}
if (responseQueue != null)
{
responseQueue.Dispose();
}
if( mq!=null && mq!=messageQueue )
{
mq.Dispose();
}
}
}