2013-05-24 5 views
0

Я просто хочу подтвердить одно: у вас должен быть конструктор без параметров для сборки .NET, чтобы он назывался как обычный COM-компонент (с Win32 :: OLE -> новый (?)) Если у dll нет подходящего класса с таким конструктором, вы не сможете назвать его Win32 :: OLE -> new().WIN32 :: OLE-вызов. Net dll

ответ

2

Да. Вам нужен конструктор public и default. http://msdn.microsoft.com/en-AU/library/ms182203(v=vs.80).aspx

Если ваш класс не имеет открытый конструктор, то вам не нужно, чтобы создать один, так как конструктор публичного по умолчанию автоматически добавляется для вас: http://msdn.microsoft.com/en-us/library/aa645608(v=vs.71).aspx то есть:

В этом:

class Message 
{ 
    object sender; 
    string text; 
} 

является такой же как:

class Message 
{ 
    object sender; 
    string text; 
    public Message(): base() {} 
} 

Однако, если у вас есть конструктор с некоторыми аргументами, тогда вы должны вручную p Создайте стандартный конструктор по умолчанию.

+0

Спасибо, так что это означает, что реализация singleton с единственным экземпляром, поскольку public свойство не может быть вызвано Win32 :: OLE-> new(). Требуется какой-то класс обертки. – NewDTinStackoverflow

+0

Да. Но будьте осторожны, чтобы ваша обложка не создавала новый синглтон каждый раз. i.e не использовать new() и создавать несколько экземпляров оболочки. :) – basarat

Смежные вопросы