如何在没有引用的情况下使用另一个项

时间:2015-04-09 08:27:13

标签: c# autocad-plugin

我有两个项目P1和P2(ClassLibrary项目)。我将P2添加到P1的引用中。我需要在P2项目中从P1获取方法。

我尝试这样做:

//P1 project class Commands

 class Commands:ICommands
 {
    public void Somemethod()
    {......}
 }
 //P2 project
 interface ICommands
 {
  void Somemethod(); 
 }
 class UserControl1:UserControl
 {
  ICommands _commands
  public void setCommands(ICommands com)
  {
   _commands=com;
  }
  private void button1_Click(object sender, EventArgs e)
    {

        _commands.Somemethod();


    }
 }

但是当我按下button1时我有例外:

  

对象引用未设置为对象的实例。

这是autoCad插件。 P1从P2加载调色板,但调色板按钮的命令在P1项目中。

当AutoCad运行时,调色板加载。当我按下按钮并尝试调用Somemethod()时,会出现此错误; 所有错误文字:

  

应用程序中的组件中发生了未处理的异常。如果单击“继续”,应用程序将忽略此错误并尝试继续。   对象引用未设置为对象的实例。

Somemethod()必须在AutoCad中运行新绘图 AutoCad仅使用第二个dll(P2项目)中的一个dll(P1项目)UI调色板加载我需要从第一个.dll(P1项目)调色板加载方法

1 个答案:

答案 0 :(得分:0)

在P1中定义一个具有静态方法的类

从P2(已在AutoCAD上加载),加载P1,然后调用P1 Class.Method()