从C#应用程序调用本地.NET(2)COM +组件

Jam*_*Law 2 .net c# com+

我已经创建了一个.NET 2 COM +组件,供我们古老的经典ASP网站使用.这在经典ASP中非常简单...

Dim MenuManager : Set MenuManager = Server.CreateObject("MenuManager.MenuManager")
Run Code Online (Sandbox Code Playgroud)

但是,我想使用C#控制台应用程序对组件进行性能配置.

如何在C#控制台应用程序中调用它?

Han*_*ant 7

您正在使用CreateObject()函数的后期绑定.你想窃取,乞讨或借用VS2010的副本来使用C#4.0 动态关键字来轻松做到这一点.这是类似的代码,适用于任何机器.它使用后期绑定来创建FileSystemObject COM组件,前两行等同于您的代码片段.它列出了c:\ windows文件夹的子目录:

using System;

class Program {
    static void Main(string[] args) {
        var type = Type.GetTypeFromProgID("Scripting.FileSystemObject");
        dynamic obj = Activator.CreateInstance(type);
        dynamic win = obj.GetFolder("c:/windows");
        foreach (dynamic subwin in win.SubFolders) {
            Console.WriteLine(subwin.Name);
        }
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您不能使用C#版本4,那么请考虑使用VB.NET.它具有相同的语法,并且还具有CreateObject()函数.