惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 流星石

水晶报表中如何改变报表的背景色、显示行数等。 如何动态生成水晶报表(ASP.NET) C编写的SQL Server 数据库连接通用类库 使用Facade模式分析 DreamWeaver MX 2004中 设为首页和加入收藏的实现 DreamWeaver MX 2004制作树状菜单 DreamWeaver MX 2004利用层进行下拉菜单的制作 Grove---------.NET中的ORM实现 .NET下的加密编程 在ASP.NET中写一个数据层基类-----DbObject 在ASP.NET页面中显示年月日和星期的代码实现 在ASP.NET中实现多文件上传 构建简单的Web Service服务 在ASP.NET 中实现Model-View-Controller 数据库操作源代码 asp.net中DataGrid双行跨列表头设计心得 用C#写一个Web自定义日期时间控件 C#.net常用函数和方法集 Together for .net建模入门
C#中写COM+组件
流星石 · 2005-07-18 · via 博客园 - 流星石

 

关于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 .Net2003 命令提示

找到文件的地址,输入sn -k ,生成密匙

比如我的文件在E盘,c#中,

E:\C#\TestCom\TestCom > sn -k server.snk;

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 一下就可以直接用其中的方法了。

posted on 2005-07-18 21:44  流星石  阅读(1493)  评论()    收藏  举报