我在Visual Studio 2008的C#.NET Compact Framework的3.5的移动项目的程序使用条形码扫描仪和适用于两种不同类型的Windows Mobile设备(使用自己的SDK来操纵条形码扫描器两者)。如何有条件地添加对扫描仪SDK SDK DLL文件的引用?即如果为HARDWARE1配置编译,我不想添加对HARDWARE2-SCANNER-SDK.DLL的引用。添加通过代码参考?
1
A
回答
1
您可以指定哪些DLL(县)在您的app.config文件加载,然后用Assembly.Load方法加载正确的库(库)。
这是简单的答案。但要真正做到这一点,您可能需要创建一些共享公共API的“包装器”程序集(也在单独的库中),以便您的最终应用程序无需关心扫描器信息的来源。它应该不知道正在使用什么硬件。
顺便说一句:这是所有相关的依赖注入的概念,尽管在模块,而不是一个一流水平。这里有一对夫妇的资源,让您开始:
http://msdn.microsoft.com/en-us/magazine/cc163739.aspx http://en.wikipedia.org/wiki/Dependency_injection
0
你为什么需要?如果您使用接口访问扫描器,则一个实现将引用一个SDK,另一个实现将引用另一个SDK。
在运行时实际创建的类将试图加载引用的程序集,如果你实例,然后适当的SDK参考将被装载前检测硬件。基本上,如果你不使用不存在的SDK,它将永远不会尝试加载它。
这将是一个问题的唯一原因是,如果两个软件开发工具包使用相同的类名。在这种情况下,我仍然会基于它进行接口,但是对于接口的每个实现都有一个不同的DLL,并且这些项目会引用它们正确的SDK。
相关问题
- 1. 通过代码添加窗体控件通过代码
- 2. 通过参考
- 3. 通过参考
- 4. 通过代码添加绑定扩展
- 5. 通过代码添加xml标记
- 6. Android通过代码添加许多Imageview
- 7. 通过代码不工作添加LongListSelector
- 8. Windows 8通过代码添加附件
- 9. 代码问题通过nuget添加ELMAH
- 10. Javascript通过代码添加js库
- 11. Android:通过java代码添加图像
- 12. 动态添加HTML代码通过JavaScript
- 13. 通过ASPX代码添加CSS类
- 14. 如何通过添加Python代码
- 15. 事件通过代码添加不开
- 16. 通过代码在Sharepoint中添加TermSetGroup
- 17. 通过代码添加谷歌帐户
- 18. 通过代码添加和设置NSLayoutConstraint
- 19. 通过代码添加模块
- 20. 再通过参考
- 21. LLVM,通过参考
- 22. C - 通过参考?
- 23. 通过vb.net参考
- 24. 通过RealProxy参考参数
- 25. 添加DLL参考
- 26. Bloomberglp.Blpapi添加参考
- 27. 参考添加DLL
- 28. 添加一个C#参考号码
- 29. 为Web参考添加服务参考
- 30. mySQL加入参考父代码