首页 > 开发 > 综合 > 正文

使用C#开发COM+组件

2024-07-21 02:19:43
字体:
来源:转载
供稿:网友
国内最大的酷站演示中心!
.net技术是微软大力推广的下一代平台技术,自从.net技术架构beta2版本的正式发布,此项技术也逐渐走向成熟和稳定。按照微软的平台系统占有率,我们不难想象得到,在未来的一两年内.net技术必定会势如破竹一般的登上主流的技术平台,而一个新的技术平台得以快速发展的最重要的前提是:他不会彻底的摒弃以前的技术,这一点对于.net技术来说指的就是com/com+技术了。

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

在e/classlibrary1/目录下用sn命令生成一个guid,如下所示:

sn –k keyfile.snk

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

[assembly: assemblykeyfile(@"e:/classlibrary1/keyfile.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+应用程序名“


上一篇:C# 和 API

下一篇:Observer Design Pattern in C#!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表