DotNET分布式编程之COM+(二)

第一部分:回顾:
一、COM+中的对象构造服务
二、COM+中的基于角色的安全性

第二部分:新课:
一、COM+中的共享属性管理器介绍
二、使用.NET类库访问Windows队列,两个例子:一个例子用于发送消息,一个例子用户接收消息
发送方代码:
using System;
using System.Messaging;

namespace Sender
{
 class SenderMain
 {
      static void Main(string[] args)
      {
    try
    {
 
     if(MessageQueue.Exists(@".\private$\MyPrivateQ")==false)
     {
      MessageQueue.Create(@".\private$\MyPrivateQ");
     }
     // 创建队列类实例
     MessageQueue mq = new MessageQueue(@".\private$\MyPrivateQ");

     //创建消息实例
     Message msg = new Message();
     msg.Label = "A message label";
     msg.Body = "The message body";
     // 等待接收的时间为5秒
     msg.TimeToBeReceived = TimeSpan.FromSeconds(15);
     // 如果超时,消息将删除被加入到死信队列.(空字母消息)
     msg.UseDeadLetterQueue=true;
     // 发送消息到队列
     mq.Send(msg);
     Console.WriteLine("消息发送成功!");
    }
    catch(Exception ex)
    {
     Console.WriteLine(ex.Message);
    }
      }
 }
}
接收方代码:
using System;
using System.Messaging;

namespace Receiver
{
 class ReceiverMain
 {
  static void Main(string[] args)
  {
         //打开队列
         MessageQueue mq = new MessageQueue(@".\private$\MyPrivateQ");

         // 创建一个type数组,该数组包含消息中可能会出现的类型
         Type[] expectedTypes = new Type[] {typeof(string), typeof(float)};

         // 用该类型数组初始化xmlmessageformatter
         mq.Formatter = new XmlMessageFormatter(expectedTypes);

         // 从队列读出消息
         while (true)
         {
            Message msg = mq.Receive(); // <-- blocks until message arrives
            Console.WriteLine(msg.Body.ToString());
         }

  }
 }
}


三、COM+中的队列组件
采用书上的例子,四个项目:队列组件+远程对象+服务器+客户端


第三部分:总结,新课预告

你可能感兴趣的:(com)