NET下RabbitMQ实践 [WCF发布篇]

  在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写。今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布。
  注:因为RabbitMQ的官方.NET客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵。首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下:   
  Binary, compiled for .NET 3.0 and newer (zip) - includes example code, the WCF binding and WCF examples
  当然官方还提供了基本.NET 2.0 版本的示例版本,但其中只是一些简单的示例,并不包括WCF部分,这里只发个链接,感兴趣的朋友可自行研究。   
  Binary, compiled for .NET 2.0 (zip) - includes example code      
  下载基于.NET 3.0的版本源码之后,解压其中的projects/examples/wcf目录,可看到如下的项目:      几个文件夹分别对应如下应用场景:
  OneWay: 单向通信(无返回值)
  TwoWay: 双向通信(请求/响应)
  Session:会话方式
  Duplex: 双向通信(可以指定一个Callback回调函数)
  OneWay  
  在OneWayTest示例中,演示了插入日志数据,因为日志操作一般只是单纯的写入操作,不考虑返回值,所以使用OneWay方式。下面是其WCF接口声明和实例代码,如下:      

    [ServiceContract]
    
public interface ILogServiceContract
    {
        [OperationContract(IsOneWay
=true)]
        
void Log(LogData entry);
    }
   
    [ServiceBehavior(InstanceContextMode 
= InstanceContextMode.Single)]
    
public class LogService : ILogServiceContract
    {
        
public int m_i;
        
public void Log(LogData entry)
        {
            Util.WriteLine(ConsoleColor.Magenta, 
"  [SVC] {3} [{0,-6}] {1, 12}: {2}", entry.Level, entry.TimeStamp, entry.Message, m_i++);
        }
    }

NET技术NET下RabbitMQ实践 [WCF发布篇],转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。