Skip to main content
 首页 » 编程设计

visual-studio-2010之如何在 C# 中创建 COM 可见类

2024年05月22日10mengfanrong

我使用Visual Studio 2010 (.NET 4)。我需要创建一个 COM对象(在 C# 中)并且不知道如何开始(使用什么类型的项目等)

请您参考如下方法:

好的,我找到了解决方案,为了共同利益,我将其写在这里。

  1. 以管理员身份启动 VS2010。
  2. 打开一个类库项目(例如maple - MyProject)。
  3. 向项目添加新接口(interface)(请参见下面的示例)。
  4. using System.Runtime.InteropServices; 添加到文件
  5. 向界面添加属性 InterfaceType、Guid。
  6. 您可以使用“工具”->“生成 GUID”(选项 4)生成 Guid。
  7. 添加一个实现该接口(interface)的类。
  8. 将属性 ClassInterface、Guid、ProgId 添加到接口(interface)。
    ProgId 约定为 {namespace}.{class}
  9. 在项目的 Properties 文件夹下的 AssemblyInfo 文件中,将 ComVisible 设置为 true。
  10. 在项目属性菜单的“构建”选项卡中标记“注册 COM 互操作”
  11. 构建项目

现在您可以通过使用 COM 对象的 ProgID 来使用它。

示例: C# 代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
using System.Runtime.InteropServices; 
 
namespace Launcher 
{ 
 
    [InterfaceType(ComInterfaceType.InterfaceIsDual), Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")] 
    public interface ILauncher 
    { 
        void launch(); 
    } 
 
    [ClassInterface(ClassInterfaceType.None), Guid("YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYY"), ProgId("Launcher.Launcher")] 
    public class Launcher : ILauncher 
    { 
        private string path = null; 
 
        public void launch() 
        { 
            Console.WriteLine("I launch scripts for a living."); 
 
        } 
 
    } 
} 

和使用 COM 的 VBScript:

设置 obj = createObject("PSLauncher.PSLauncher") obj.launch()

输出将是:

我以发布脚本为生