如何在DLL中导出事件?

时间:2013-03-19 12:58:19

标签: c# dll delegates

我有以下两个类:

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成员。

修改 错误:

  

错误CS1061:'AppNamespace.DLLClass'不包含'dllEvent'的定义,并且没有可以找到接受类型'AppNamespace.DLLClass'的第一个参数的扩展方法'dllEvent'(你是否缺少using指令或者装配参考?)

     

错误CS0426:“AppNamespace.DLLClass.ParametersPanel”类型中不存在类型名称“dllDelegate”

当我尝试从DLLClass的代码中看到AppClass的定义时,MSVS会显示来自元数据的类定义,其中没有代理。

2 个答案:

答案 0 :(得分:1)

如果您的引用不是项目引用,而是文件引用,则可能需要先构建第一个项目。在构建菜单中,选择全部重建

如果这没有帮助,您可能引用了错误的文件。删除对第一个项目的引用,并向其添加项目引用

答案 1 :(得分:0)

找到this one link

问题出在.csproject文件中。