Показать сообщение отдельно
Старый 26.06.2012, 15:25   #4  
Deepoint is offline
Deepoint
Участник
SAP
 
60 / 14 (1) ++
Регистрация: 01.04.2011
Записей в блоге: 1
.Net сборку можно зарегистрировать в системе как COM объект. Для этого надо в настройках, в сведениях о сборке проставить идентификатор GUID(делал с помощью GUIDgen) и сделать её видимой для COM.
После этого сборку надо зарегистрировать в системе(regasm). Она становится доступной по GUID из кода аксапты.
Выше и есть .net библиотека которая используется как COM.
X++:
COM service = new COM("4E4CC63D-84CB-4c7a-AA97-85126917E2DA");
Только в самом коде библиотеки несколько наворотов надо делать - реализовать интерфейс класса который собственно в сборке работает.
Например:
X++:
namespace test
{
    [Guid("C70456F3-D4F7-431b-9205-A8B4C2743BA6")]
    public interface IMyClass
    {
        [DispId(1)]
        string test_message();
     }

    // Events 
    [Guid("BD5E8C93-E078-4732-B841-2DD415C470A8"),
    InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface IMyEvents
    {
    }
   
    [Guid("4E4CC63D-84CB-4c7a-AA97-85126917E2DA"),
    
    ClassInterface(ClassInterfaceType.None),
    ComSourceInterfaces(typeof(IMyEvents))]
    public class MyClass : IMyClass
    {       
        public MyClass()
        {            

        }        
        public string test_message()
        {
            return "ОК!";
        }   
}