我希望它可能是.Net中的高级概念
我的问题是
如何设置带有可选引用的程序?
例如:考虑这种情况,
我有一些程序可以将数据导出到 Excel。
此功能需要引用Microsoft Office Excel(部分特定版本)
有没有办法编写一个程序,无论是否安装了 Excel 都可以运行,但只有安装了 Excel 才能完成某些特定选项(如读取或写入 Excel)。
即使未安装 Excel,程序也应运行。
谢谢。
最佳答案
有两种基本方法。
Assembly.Load
允许您在运行时加载任意程序集、检查其内容、实例化对象、调用方法等。你通常会把它隐藏在接口(interface)、默认实现、工厂方法等东西后面。依赖注入(inject)可能依赖于这样的技术。您可以使用 Microsoft Managed Extensibility Framework,它可以完成所有这些以及更多工作。参见 http://msdn.microsoft.com/en-AU/library/dd460648%28v=vs.110%29.aspx .
Excel 有点特殊,因为它可以通过 COM 自动化访问,这提供了一些其他机会并可能增加一些其他复杂性。您通常可以构建和运行程序,因为包装器程序集将存在,并且如果 Excel 不存在,则可以在运行时处理执行失败。
无论采用哪种方式,都可能需要编写大量代码。问题中没有足够的细节来说明更多,但这不仅仅是设置“可选”标志的问题。
关于c# - Dot Net 中的可选引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24913340/