如何使用不同dll的相同namespace下的相同接口
2013-09-13 17:32
211 查看
问题:
程序里加载了2个dll,这2个dll里都声明了同样的命名空间(这个不违法),然后在这个同样的命名空间下,他俩又定义了同名的interface。
然后我程序里直接using这个命名空间,使用这个interface的时候就有问题了,因为它已经被定义在2个地方了。
有没有啥语法可以显示指出我使用哪个dll里的命名空间里的该类型?
解决办法:
1. 用alias。
Main App:
主程序设置。
Lib1:
Lib 2:
2. 用property DllImport如下:把Lab1 封到另一个namespace下。直接被主程序调用。
程序里加载了2个dll,这2个dll里都声明了同样的命名空间(这个不违法),然后在这个同样的命名空间下,他俩又定义了同名的interface。
然后我程序里直接using这个命名空间,使用这个interface的时候就有问题了,因为它已经被定义在2个地方了。
有没有啥语法可以显示指出我使用哪个dll里的命名空间里的该类型?
解决办法:
1. 用alias。
Main App:
extern alias Lib1; extern alias Lib2; using System; namespace ConsoleApp { class Program { static void Main(string[] args) { Console.WriteLine((new Lib1::MS.Lib.Class1()).Run()); Console.WriteLine((new Lib2::MS.Lib.Class1()).Run()); } } }
主程序设置。
Lib1:
namespace MS.Lib { public class Class1 { public string Run() { return "MS.Lib1.Class1Run()."; } } }
Lib 2:
namespace MS.Lib { public class Class1 { public string Run() { return "MS.Lib2.Class1Run()."; } } }
2. 用property DllImport如下:把Lab1 封到另一个namespace下。直接被主程序调用。
[DllImport("Lab1.dll", EntryPoint = "ChangeWindowMessageFilter", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool _ChangeWindowMessageFilter(WM message, MSGFLT dwFlag);
相关文章推荐
- 如何使用不同dll的相同namespace下的相同接口
- 12个球,外形相同,其中有一个球重量与其余11球不同,如何使用天平尽量少次数的测量找出这个小球且判别它比正常球轻还是重
- 如何使用Android Studio用相同的代码工程生成不同的APP
- 如何使用ACCESS查找两表中的相同项和不同项
- Android 使用Retrofit自定义Converter解析相同接口返回不同数据
- 两个类具有相同的 XML 类型名称。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。
- 数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么?
- 几台电脑同时使用一个无线路由器上网,外部ip相同,各个电脑内部ip不同,路由器如何区分某个数据包是发给某个电脑的?
- Exception:两个类具有相同的 XML 类型名称,请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称
- 多域名指向相同的虚拟主机如何设置使用不同的首页
- ajax 如何使用不同的namespace的action
- 如何制作DLL接口及使用
- 论组网上如何分开不同的客户 ----基于接口划分VLAN
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- android retrofit 实战自定义converter,解决相同接口返回不同数据的问题
- 项目中使用同一dll的不同版本
- Excel2003中两列对比如何快速辨别相同与不同数据的图文介绍
- 如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口
- 如何使用vs2008 C#程序联合调试C++dll
- 不同继承树的类也可以实现相同的接口