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+中的队列组件
采用书上的例子,四个项目:队列组件+远程对象+服务器+客户端
第三部分:总结,新课预告