2013-03-19 2 views
1

У меня есть следующие два класса:Как экспортировать событие в DLL?

public class DLLClass { 
    public delegate void dllDelegate(Object sender, EventArgs e); 
    public event dllDelegate dllEvent; 
    ..... 
} 

class AppClass { 
    DLLClass dll; 

    public AppClass() { 
     dll.dllEvent += new DLLClass.dllDelegate(dllEventHandler); 
    } 

    public void dllEventHandler(Object sender, EventArgs e){ 
    } 
} 

Каждый из них является частью одного и того же раствора, но относятся к разным проектам.

Проблема в том, что компилятор говорит, что нет dllEvent члена в DLLClass.

EDIT: Ошибка:

error CS1061: 'AppNamespace.DLLClass ' does not contain a definition for 'dllEvent ' and no extension method 'dllEvent ' accepting a first argument of type 'AppNamespace.DLLClass ' could be found (are you missing a using directive or an assembly reference?)

error CS0426: The type name 'dllDelegate' does not exist in the type 'AppNamespace.DLLClass.ParametersPanel'

Кроме того, когда я пытаюсь посмотреть определение DLLClass из кода AppClass, МСВС показывает мне определение класса из метаданных без каких-либо делегатов в нем.

+0

Задает ли компилятор 'DLLClass'? Вы сказали, что он только жалуется на 'dllEven'. –

+0

@ MD.Unicorn, да, он находит. – Alex

+2

Какая ошибка компилятора? – alex

ответ

1

Если ваша ссылка не Ссылка проекта, но ссылка на файл, вам может потребоваться сначала создать первый проект. Сформируйте Постройте меню, выберите Перестройте все.

Если это не поможет, возможно, вы указали неверный файл. Удалите ссылку на первый проект и добавьте к нему ссылку Project.

+0

Уже пытался перестроить все. Не помогло. – Alex

+0

Возможно, вы не перекомпилируете проект, содержащий DLLClass, потому что проект не выбран в конфигурации сборки. Попробуйте перестроить специально проект с помощью DLLClass. – alex

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