科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道dotnet 下开发 COM 组件

dotnet 下开发 COM 组件

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

   一、问题的提出 1、最终用户的每次请求,都将读取Mapping文件――可以通过缓存解决; 2、xxx子系统需要不断的写入Mapping文件――也可以先写入内存然后批量写入文件解决。

作者:中国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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章