COM+的东西虽然用起来简单了一些,只要引用就可以,但实际上,如果想真正合适的一个引用的服务并不是很容易的,还是需要了解COM的知识的,COM世界博大精深,需要好好努力了!
写了第一小程序,调试经验如下:
1、程序集必须有一个强名称。
2、使用COM+的类必须是Public的,如果是私有的,将不能使用COM+服务。
导出COM+的两种方式:
1、Server Application:导出组件以及其配置,并配置到另一台机器上。以*.MSI的格式,生成Install文件。(使用于从开发的机器转移到使用的机器上。)
2、Client Proxy:仅仅导出代理,可以使其在另一台机器远程使用本机的服务。(并不是真正的导出组件)
COM+ Catalog编程实现:
Com+ Admin Library用于负责编程实现COM+ Catalog的功能。
简单的企业服务安装模式:
System.EnterpriseServices.RegistrationHelper接口也可以提供简单的COM+注册服务。当然功能少很多。
简单看了一下,主要提供初始化一个组件,Install,以及deInstall
一个最简单的程序:
namespace ER
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Register
{
private string path=@"c:\COMTest.dll";
private string appId;
private string typeId;
public Register()
{
}
public void Install()
{
System.EnterpriseServices.RegistrationHelper rh=new RegistrationHelper ();
rh.InstallAssembly (path,ref appId,ref typeId,System.EnterpriseServices.InstallationFlags.Install);
}
}
}
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Register
{
private string path=@"c:\COMTest.dll";
private string appId;
private string typeId;
public Register()
{
}
public void Install()
{
System.EnterpriseServices.RegistrationHelper rh=new RegistrationHelper ();
rh.InstallAssembly (path,ref appId,ref typeId,System.EnterpriseServices.InstallationFlags.Install);
}
}
}
以下是其测试代码:
使用了NUNIT2.2
using System;
using NUnit.Framework;
namespace ER
{
/**//// <summary>
/// TestRegister 的摘要说明。
/// </summary>
[TestFixture]
public class TestRegister
{
public TestRegister()
{
}
[Test]
public void test()
{
Register registerObj=new Register ();
registerObj.Install();
}
}
}
using NUnit.Framework;
namespace ER
{
/**//// <summary>
/// TestRegister 的摘要说明。
/// </summary>
[TestFixture]
public class TestRegister
{
public TestRegister()
{
}
[Test]
public void test()
{
Register registerObj=new Register ();
registerObj.Install();
}
}
}
No comments:
Post a Comment