Создать объект очень просто - зарегистрировать его и управлять зависимостью COM может быть довольно сложно.
Ваш .NET-проект должен быть библиотекой классов, а ваш класс может быть простым C # / .NET CLR-объектом:
namespace MyCompany.MyProject.Com {
public class MyObject {
public int Width { get; set; }
public int Height { get; set; }
public void Load(string location) { /* implementation here */ }
public void Resize(int width, int height) { /* implementation here */ }
}
}
Щелкните правой кнопкой мыши свой проект, выберите «Свойства», «Приложение», нажмите «Информация о сборке» и убедитесь, что в нижней части диалогового окна «Информация о сборке» выбран «Сделать сборку видимой».
Создайте свой проект - в результате вы должны получить MyCompany.MyProject.Com.dll в папке \ bin \ debug \.
Создайте простую веб-страницу ASP, которая выглядит следующим образом:
<% option explicit %>
<%
dim myObject
set myObject = Server.CreateObject("MyCompany.MyProject.Com.MyObject")
myObject.Width = 20
myObject.Height = 40
%>
<html>
<head>COM Interop Demo</head>
<body>
<p>Width + Height = <%= myObject.Width + myObject.Height %></p>
</body>
</html>
Откройте эту страницу на http://localhost/ и убедитесь, что вы получаете сообщение «Server.CreateObject fail» при первой попытке его запустить.
Теперь зарегистрируйте вашу DLL как COM-объект, используя regasm.exe, установленный с платформой .NET:
C:\>C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /tlb MyCompany.MyProject.Com.dll /codebase
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.4927
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
Types registered successfully
Assembly exported to 'D:\WebDlls\MyCompany.MyProject.Com.tlb', and the type library w
as registered successfully
Теперь обновите вашу веб-страницу, и вы должны увидеть Ширина + Высота = 60 в вашем выводе.
В этих инструкциях предполагается, что вы ничего не запускаете в 64-битной среде; если вы, это становится более сложным. (Вам либо нужно запустить все как 64-битные - скомпилируйте 64-битный проект и используйте 64-битную версию regasm.exe, чтобы зарегистрировать его для 64-битного COM, доступ к которому осуществляется IIS под управлением 64 (или хост-сервер сценариев) - или вручную принудительно принудительно установим все 32-разрядные.