本篇文章介绍了如何写一个简单的COM+客户端(CSharp)。
1、首先要导入COM组件编译时生成的TBL文件(ATL),并引用COM组件的Assembly(CS)
2、代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ATLCOMPLib;
using CSDll;
namespace CSTestComp
{
class Program
{
static void Main(string[] args)
{
try
{
testATL();
//testCS();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
static void testATL()
{
Type justATestCOMPType = System.Type.GetTypeFromProgID("ATLCOMP.JustATestCOMP", "172.16.172.3");
IJustATestCOMP svc = (IJustATestCOMP)System.Activator.CreateInstance(justATestCOMPType);
int c = svc.Add(1, 2);
System.Console.WriteLine(c);
String retValue = svc.SayHiTo("com+");
System.Console.WriteLine(retValue);
System.Console.Read();
}
static void testCS()
{
Type justATestCSSvcType = System.Type.GetTypeFromProgID("CSDll.JustATestCSSvc", "172.16.172.3");
IJustATestCSSvc svc = (IJustATestCSSvc)System.Activator.CreateInstance(justATestCSSvcType);
int c = svc.Add(1, 2);
System.Console.WriteLine(c);
String retValue = svc.SayHiTo("com+");
System.Console.WriteLine(retValue);
System.Console.Read();
}
}
}
如果是本机测试(带IP),一般不会遇到权限问题
PS:
用了一晚上时间,只能调通Win7与Win7之间远程调用,无法调通Win7与XP之间远程调用(总是各种提示Access is Denied)。
如果有谁调通过,麻烦留言告诉我一下。谢谢!