一般來說,在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+應用程序名“