单独项目中的两个类如何在彼此之间进行通信?
如果ClassA引用ClassB,我可以在ClassA中访问ClassB的方法...如何使用Interfaces访问ClassB中ClassA的方法?
如果我使用Interfaces,确实需要链接这些类吗?
有人可以请我提供一个例子吗?
C#2.0中的编码。
我的意思是课程。如果我有两个未被引用的项目,但我想访问另一个类中的方法...我怎样才能通过接口实现这一点。
有人向我提到这是我应该使用的,但如果没有引用项目,我很难理解如何实现接口。
答案 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)
在Link Assembly中,只需定义接口:
Public Interface IA { void DoSomething(); }
Public Interface IB { void DoSomething(); }
来自另一个具有A类的程序集的参考链接程序集:
class A : LinkAssembly.IA {
Public sub DoSomethingOnB(IB b ) { b.DoSomething(); }
Public sub DoSomething(){// }
}
对于B类,如A:
class B : LinkAssembly.IB {
Public sub DoSomethingOnA(IA a ) { a.DoSomething(); }
Public sub DoSomething(){// }
}