Я использующий Visual Studio 2010 (.NET 4). Я должен создать COM-объект (в C#) и понятия не иметь, как начать (какой проект использовать, и т.д.)
Хорошо, я нашел решение и напишу его здесь для общего блага.
с помощью System.Runtime.InteropServices;
в файл
теперь вы можете использовать свой 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.");
}
}
}
и сценарий VB с использованием COM:
set obj = createObject ("PSLauncher.PSLauncher")
obj.launch ()
и результат будет:
Я запускаю скрипты, чтобы заработать себе на жизнь
Можно использовать проект библиотеки классов. Объявите тип с методами, которые будут предоставляться как COM-объект.
Убедитесь, что сборка стала COM-видимой:
И, наконец, зарегистрируйте ее с помощью regasm.exe:
regasm.exe /codebase mylib.dll
Теперь сборка предоставляется как COM-объект, и объявленный тип может использоваться любым клиентом, поддерживающим COM.