扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年10月2日
关键字:
在本页阅读全文(共2页)
四、实例剖析
1、首先新建一个类库。(在我的项目里叫XMLOperate)
它会生成两个文件,AssemblyInfo.cs和Class1.cs(我把Class1.cs改成了Main.cs,具体名称可以自己定)
2、添加引用(System.EnterpriseServices )
3、回到Main.cs:
using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.EnterpriseServices;
namespace XMLOperator
{
/// <summary>
/// OMPmSAXMLOperator 的摘要说明。
/// </summary>
[ObjectPooling(MinPoolSize=0, MaxPoolSize=1)]
[JustInTimeActivation(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class XMLOperate : ServicedComponent
{
protected override void Construct(string constructString)
{
base.Construct(null);
}
protected override void Activate(){}
protected override void Deactivate(){}
protected override bool CanBePooled(){return true;}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
///
///把我的很多方法都去掉了,写个简单的visit来演示一下就OK了。
///
[AutoComplete]
public string visit(string name)
{
return "欢迎 " + name;
}
}
}
4、回到AssemblyInfo.cs,添加引用using System.EnterpriseServices;
添加代码:
//将组件设置为服务器启动模式。
[assembly: ApplicationActivation(ActivationOption.Server) ]
//制定应用服务器名称
[assembly: ApplicationName("XMLOperate")]
5、接下来,给服务器程序一个强名称(相当于注册)。打开 Visual Studio .Net2003 (也许你用的是2005)命令提示,找到文件的地址,输入sn -k ,生成密匙比如我的文件在D盘,work中,
D:\work\XMLOperate> sn -k XMLOperate.snk
XMLOperate.snk为生成的文件名称,( 执行完成后,文件里会多出一个文件server.snk )
6、强名称生成完后,回到程序中,在AssemblyInfo.cs中最后几排,可以发现[assembly: AssemblyKeyFile(" ")],把文件路径写进去[assembly: AssemblyKeyFile("……/……/XMLOperate.snk")]
7、生成解决方案,在OBJ \ debug 中会有个XMLOperate.dll,回到Visual Studio .Net2003 命令提示,到文件obj\debug目录下,执行regsvcs 命令,注册服务。(完全可以不用手工注册,在步骤9中,客户端调用new的时候的时候如果没有注册该组件服务,则系统会自动注册,详细请见(三)部分最后的注册方式。)
我的项目中是这样的
D:\work\XMLOperate\obj\debug > regsvcs XMLOperate.dll;
这样,服务器就构建完成。
打开我的电脑,控制面板,管理工具,组件服务,com+应用程序,现在我们可以看到com+中多了个,XMLOperate这个就是刚所建的服务器。
8、在XMLOperate上按右键,打开属性,修改安全性:调用身份验证级别为:无,模拟级别为标识。授权下的勾去掉( 这些是根据情况需要更改的,现在仅仅做个本机上的列子)。然后找到激活,远程服务器名称改成你自己机器的IP地址。
9、建立客户端。
建一个winfrom(在我的项目里其实有1个web service和一个window service来调用XMLOperate)
加入引用:
using System.EnterpriseServices;
using XMLOperate;
在客户端要引用的地方new 一下就可以直接用其中的方法了。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者