.Net下开发COM+组件

一、问题的提出
1、最终用户的每次请求,都将读取Mapping文件--可以通过缓存解决; 
2、子系统需要不断的写入Mapping文件--也可以先写入内存然后批量写入文件解决; 

二、分析解决问题
由于分别有2个或更多子系统需要对同一文件进行读写操作,而客户端又有很大的并发性,所以极可能出现读写冲突或错误,也必将影响系统的性能。 
通过调用共同的进程外组件的方式来读写文件;而这个共同的进程外组件只有在自身启动的时候把文件内容load到内存,当文件有变化时更新内存。 

三、实例剖析

1、首先新建一个类库。(在我的项目里叫ClassLibrary1) 它会生成两个文件,AssemblyInfo.cs和Class1.cs

2、添加引用(System.EnterpriseServices ) 

3、回到Class1.cs:

 [ObjectPooling(MinPoolSize=0, MaxPoolSize=1)]
 [JustInTimeActivation(true)]
 [ClassInterface(ClassInterfaceType.AutoDual)]
 
 public class Class1:ServicedComponent
 {
  public Class1()
  {

  }
  protected override void Construct(string constructString)
  {
   base.Construct(null);
  }
  protected override void Activate(){}

  protected override void Deactivate(){}

  protected override bool CanBePooled(){return true;}

  protected override void Dispose(bool disposing)
  {
   base.Dispose(disposing);
  }
  public string visit(string name)
  {
   return "欢迎 " + name;
  }

 }

5、注册

E:/Test/ClassLibrary1> sn -k ClassLibrary1.snk 

6、强名称生成完后,回到程序中,在AssemblyInfo.cs中最后几排,把文件路径写进去[assembly: AssemblyKeyFile("../../ClassLibrary1.snk ")] 

7、生成解决方案,服务器就构建完成!

打开我的电脑,控制面板,管理工具,组件服务,com+应用程序,现在我们可以看到com+中多了个,ClassLibrary1这个就是刚所建的服务器。 

8、客户端。 
建一个winfrom来调用ClassLibrary1 
加入引用: 
using System.EnterpriseServices; 
using XMLOperate; 
在客户端要引用的地方new 一下就可以直接用其中的方法了!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值