使用C#开发COM+组件 (转)

使用C#开发COM+组件 (转)[@more@]  .NET技术是 微软大力推广的下一代平台技术,自从.NET技术架构Beta2版本的正式发布,此项技术也逐渐走向成熟和稳定。按照微软的平台 系统占有率,我们不难想象得到,在未来的一两年内.NET技术必定会势如破竹一般的登上主流的技术平台,而一个新的技术平台得以 快速发展的最重要的前提是:他不会彻底的摒弃以前的技术,这一点对于.NET技术来说指的就是COM/COM+技术了。

一般来说,在IT技术界以及硬件产业,技术的更新换代速度非常得惊人,而惯例是所有的新技术都会遵循向下兼容的原则,但是.NET技术不仅仅做到了这一点,.NET甚至实现了相互之间的各自调用,这一点是非常难能可贵的。也就是说,不但我们可以在.NET组件中调用COM组件,同时也可以在COM组件中正常的调用.NET组件。这点带来的好处是显而易见的,一方面我们可以保持现有的技术资源,另一方面,在现有资源中可以利用.NET所带来的各种新技术。

在EClaSSLibrary1目录下用SN命令生成一个GUID,如下所示:XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

    sn –k keyfile.snk

  在工程的AssemblyInfo.cs文件中加入如下语句:

[assembly: AssemblyKeyFile(@"e:classlibrary1keyfile.snk")]

  作用是使这个工程文件创建的DLL文件拥有GUID(全球唯一标识符),也就是拥有一个强名称(strong name),这是COM+要求的。

  CS的详细代码如下:

using System;

using System.Runtime.InteropServices;//为了调用GUID

using System.EnterpriseServices;//引用COM+的类

using System.web.Services;

namespace ClassLibrary1

{

  //如果不指定guid,每次都会随机生成CLSID

    [Guid("539448DE-9F3B-4781-A1F6-F3C852091FC9")]

    public interface IShARPobject2

  {

    string Name  //Property: Name, Get/Set

  {

    get;

    set;

  }

 

    void Test();

  }

  public class Class1: ServicedComponent,ISharpObject2

  {

    public Class1()

  {

    //

    // TODO: Add constructor logic here

    //

  }

    private string m_strName;

    public string Name  //Property: Name, Get/Set

  {

    get  {  return m_strName;  }

    set  {  m_strName = value;  }

  }

    public void Test(){}

  }

}

  生成DLL文件后可以有3种方法,在COM+的管理服务器中创建一个COM+应用程序,这里使用的方法是在DOS操作下,使用命令

    regsvcs /c class1.dll MyCom  “MyCom是要生成的COM+应用程序名“

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991414/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-991414/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值