描述:
最近在搞组件,并用C#调用的问题,以前没搞过,好多细节问题都搞不定!
希望高手能给详细解答下!
B组件调用了A组件,在C#写的demo中只引用了B组件,通过B组件可以查看到A组件接口。我想问的是可以通过B组件来new一个A组件接口的类吗?我这好像通过B无法new一个A组件接口的类。
我这只要是通过B组件的接口方法返回的A组件接口类型的返回值,必须通过B组件来实现一个A接口,如果直接使用A接口,则提示类型不匹配!
实际情况是这样的:
A组件有两个接口IA1和IA2,B组件有一个接口IB1
IB1的一个方法FB1返回一个类型为IA1的返回值,这个返回值我是通过B组件创建的,即:
IB1Lib.IB1 ib1 = new IB1Lib.B1Class();
IB1Lib.IA1 ia1 = ib1.FB1();
我现在要new一个IA2,调其一个方法FA2,其参数类型为IA1,可是通过B组件无法new一个IA2的类,必须在demo中把A组件也引用进来,直接new一个IA2的类对象ia2,可是此时的ia1是通过B组件创建的,将其做为ia2的方法FA2的参数,会提示类型不匹配!
我想了解下,我这样做是不是不对,该如何实现这种功能?
解决方案1:
我现在要new一个IA2,调其一个方法FA2,其参数类型为IA1,可是通过B组件无法new一个IA2的类,必须在demo中把A组件也引用进来,直接new一个IA2的类对象ia2,可是此时的ia1是通过B组件创建的,将其做为ia2的方法FA2的参数,会提示类型不匹配!
这段话看的我晕.A组件有IA1和IA2两个接口.你为何将IA1作为IA2方法FA2参数?
另外你得到的IA1和IA2两个接口,可能是A组件的两个不同对象的接口.