如何在两个未引用的项目之间创建接口

时间:2008-12-15 08:00:10

标签: c# interface

单独项目中的两个类如何在彼此之间进行通信?

如果ClassA引用ClassB,我可以在ClassA中访问ClassB的方法...如何使用Interfaces访问ClassB中ClassA的方法?

如果我使用Interfaces,确实需要链接这些类吗?

有人可以请我提供一个例子吗?

C#2.0中的编码。


我的意思是课程。如果我有两个未被引用的项目,但我想访问另一个类中的方法...我怎样才能通过接口实现这一点。

有人向我提到这是我应该使用的,但如果没有引用项目,我很难理解如何实现接口。

3 个答案:

答案 0 :(得分:2)

我认为你的意思是集会,而不是阶级。

您有两个选择,要么使用System.Reflection命名空间(脏方式),那么您甚至不需要任何接口,只需通过反射调用方法。

System.Reflection.Assembly.LoadFile("MyProject.dll").GetType("MyProject.TestClass").GetMethod("TestMethod").Invoke();

或者干净的方式,只使用接口创建AssemblyZ并让两个程序集(A& B)中的类来实现这些接口。

答案 1 :(得分:0)

您可以使用接口多态性通过接口从B访问A类功能。

class B
{

   Public sub DoSomethingOnA(IA a )
   {
        a.DoSomething();
   }

}

Interface IA
{
    void DoSomething();
}

Class A : IA
{
    void DoSomething()
   {
       //
   }

}

答案 2 :(得分:0)

  1. 在Link Assembly中,只需定义接口:

    Public Interface IA { void DoSomething(); }
    
    Public Interface IB { void DoSomething(); }
    
  2. 来自另一个具有A类的程序集的参考链接程序集:

    class A : LinkAssembly.IA {
    
    Public sub DoSomethingOnB(IB b ) { b.DoSomething(); }
    
    Public sub DoSomething(){// }
    
    }
    
  3. 对于B类,如A:

    class B : LinkAssembly.IB {
    
    Public sub DoSomethingOnA(IA a ) { a.DoSomething(); }
    
    Public sub DoSomething(){// }
    
    }