C#中写简单的COM+组件
生活随笔
收集整理的這篇文章主要介紹了
C#中写简单的COM+组件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于C#中COM+的使用大致是這樣的:COM+需要服務器端和客戶端,個人意見COM+更合適于B/S系統中。
關于服務器構造是這樣的:
1、首先新建一個類庫。(這里我們把它命名為TestCom)
? ? ?它會生成兩個文件,AssemblyInfo.cs和Class1.cs
2、添加新類( server.cs )?
3、添加引用( System.EnterpriseServices )
4、回到Class1.cs 將其該為接口。
using System;
namespace TestCom
{
? ? public interface Class1
? ? {
? ? ? ? ? string test(); ? ? ? ? ? ??
? ? }
}
5、打開server.cs 的代碼
在代碼Using 中添加引用:using System.EnterpriseServices
將server.cs繼承ServicedComponent,Class1。它會自動有個提示,按TAB。。。。。
具體代碼如下:
using System;
using System.EnterpriseServices;
namespace TestCom
{
/// <summary>
/// server 的摘要說明。
/// </summary>
public class server: ServicedComponent,Class1
{
? public server()
? {
? ?//
? ?// TOD 在此處添加構造函數邏輯
? ?//
? }
? #region Class1 成員
? public string test()
? {
? ? ?string a = "mm";
? ? ? return a; ? ? ? ? ? ? ? ? ? ? //隨便傳個string?
? }
? #endregion
}
}
6、回到AssemblyInfo.cs,添加引用
using System.EnterpriseServices;
添加代碼:
//將組件設置為服務器啟動模式。
[assembly: ApplicationActivation(ActivationOption.Server) ]
//制定應用服務器名稱
[assembly: ApplicationName("Server")]
接下來,給服務器程序一個強名稱。(相當于注冊)
7、打開Visual Studio 命令提示
找到文件的地址,輸入sn -k ,生成密匙
server.snk為生成的文件名稱,( 執行完成后,文件里會多出一個文件server.snk )
8、強名稱生成完后,回到程序中
在AssemblyInfo.cs中最后幾排,可以發現[assembly: AssemblyKeyFile(" ")]
把文件路徑寫進去[assembly: AssemblyKeyFile("../../server.snk")]
9、生成解決方案,在OBJ \ debug 中會有個TestCom.dll
回到Visual Studio .Net2003 命令提示,到文件obj\debug目錄下,執行regsvcs 命令,注冊服務。
我機器上是這樣的
E:\C#\TestCom\TestCom\obj\debug > regsvcs testCom.dll;
這樣,服務器就構建完成。
打開我的電腦,控制面板,管理工具,組件服務,com+應用程序,
現在我們可以看到com+中多了個,server
這個就是你所建的服務器
10、在server上按右鍵,打開屬性,修改安全性:調用身份驗證級別為:
無,模擬級別為標識。授權下的勾去掉( 這些是根據情況需要更改的,現在僅僅做個本機上的列子)。
然后找到激活,遠程服務器名稱改成你自己機器的IP地址。
11、建立客戶端。
建一個winfrom
加入引用:using System.EnterpriseServices
?using TestCom;
在客戶端要引用的地方new 一下就可以直接用其中的方法了。
關于服務器構造是這樣的:
1、首先新建一個類庫。(這里我們把它命名為TestCom)
? ? ?它會生成兩個文件,AssemblyInfo.cs和Class1.cs
2、添加新類( server.cs )?
3、添加引用( System.EnterpriseServices )
4、回到Class1.cs 將其該為接口。
using System;
namespace TestCom
{
? ? public interface Class1
? ? {
? ? ? ? ? string test(); ? ? ? ? ? ??
? ? }
}
5、打開server.cs 的代碼
在代碼Using 中添加引用:using System.EnterpriseServices
將server.cs繼承ServicedComponent,Class1。它會自動有個提示,按TAB。。。。。
具體代碼如下:
using System;
using System.EnterpriseServices;
namespace TestCom
{
/// <summary>
/// server 的摘要說明。
/// </summary>
public class server: ServicedComponent,Class1
{
? public server()
? {
? ?//
? ?// TOD 在此處添加構造函數邏輯
? ?//
? }
? #region Class1 成員
? public string test()
? {
? ? ?string a = "mm";
? ? ? return a; ? ? ? ? ? ? ? ? ? ? //隨便傳個string?
? }
? #endregion
}
}
6、回到AssemblyInfo.cs,添加引用
using System.EnterpriseServices;
添加代碼:
//將組件設置為服務器啟動模式。
[assembly: ApplicationActivation(ActivationOption.Server) ]
//制定應用服務器名稱
[assembly: ApplicationName("Server")]
接下來,給服務器程序一個強名稱。(相當于注冊)
7、打開Visual Studio 命令提示
找到文件的地址,輸入sn -k ,生成密匙
server.snk為生成的文件名稱,( 執行完成后,文件里會多出一個文件server.snk )
8、強名稱生成完后,回到程序中
在AssemblyInfo.cs中最后幾排,可以發現[assembly: AssemblyKeyFile(" ")]
把文件路徑寫進去[assembly: AssemblyKeyFile("../../server.snk")]
9、生成解決方案,在OBJ \ debug 中會有個TestCom.dll
回到Visual Studio .Net2003 命令提示,到文件obj\debug目錄下,執行regsvcs 命令,注冊服務。
我機器上是這樣的
E:\C#\TestCom\TestCom\obj\debug > regsvcs testCom.dll;
這樣,服務器就構建完成。
打開我的電腦,控制面板,管理工具,組件服務,com+應用程序,
現在我們可以看到com+中多了個,server
這個就是你所建的服務器
10、在server上按右鍵,打開屬性,修改安全性:調用身份驗證級別為:
無,模擬級別為標識。授權下的勾去掉( 這些是根據情況需要更改的,現在僅僅做個本機上的列子)。
然后找到激活,遠程服務器名稱改成你自己機器的IP地址。
11、建立客戶端。
建一個winfrom
加入引用:using System.EnterpriseServices
?using TestCom;
在客戶端要引用的地方new 一下就可以直接用其中的方法了。
總結
以上是生活随笔為你收集整理的C#中写简单的COM+组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书转载:老板的忠告
- 下一篇: 没事研究下C#虚拟光驱,有所收获!