首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否通过代码添加引用?

是否通过代码添加引用?
EN

Stack Overflow用户
提问于 2010-03-05 23:41:00
回答 2查看 176关注 0票数 1

我在Visual Studio2008中有一个C# .NET Compact Framework3.5移动项目。该程序使用条形码扫描仪,适用于两种不同类型的Windows Mobile设备(都使用各自的SDK来操作条形码扫描仪)。如何有条件地添加对scanner SDK SDK DLL文件的引用?也就是说,如果针对HARDWARE1配置进行编译,我不想添加对HARDWARE2-SCANNER-SDK.DLL的引用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-05 23:50:21

您可以指定要在app.config文件中加载的DLL,然后使用Assembly.Load方法加载适当的库。

这就是简单的答案。但是要真正做到这一点,你可能需要创建几个“包装器”程序集,它们共享一个公共的API (也在一个单独的库中),这样你的最终应用程序就不必关心你的扫描仪信息从哪里来了。它应该对正在使用的硬件一无所知。

顺便说一句,这一切都与依赖注入的概念有关,尽管是在模块级别而不是类级别。这里有几个资源可以让你入门:

http://msdn.microsoft.com/en-us/magazine/cc163739.aspx http://en.wikipedia.org/wiki/Dependency_injection

票数 1
EN

Stack Overflow用户

发布于 2010-03-06 00:08:56

为什么你需要这样做?如果您使用一个接口来访问扫描器,那么一个实现将引用一个SDK,另一个实现将引用另一个SDK。

在运行时,您实际创建的类将尝试加载引用的程序集,如果您在实例化之前检测到硬件,则将加载正确的SDK引用。基本上,如果你不使用不存在的SDK,那么它永远不会尝试加载它。

这将是一个问题的唯一原因是如果两个SDK使用相同的类名。在这种情况下,我仍然使用基于接口的接口,但对于接口的每个实现都有不同的DLL,这些项目将引用其相应的SDK。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2387921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档