c# - Dot Net 中的可选引用

标签 c# .net vb.net visual-studio reference

我希望它可能是.Net中的高级概念
我的问题是

如何设置带有可选引用的程序?

例如:考虑这种情况, 我有一些程序可以将数据导出到 Excel。
此功能需要引用Microsoft Office Excel(部分特定版本)

有没有办法编写一个程序,无论是否安装了 Excel 都可以运行,但只有安装了 Excel 才能完成某些特定选项(如读取或写入 Excel)。

即使未安装 Excel,程序也应运行。

谢谢。

最佳答案

有两种基本方法。

  1. Assembly.Load 允许您在运行时加载任意程序集、检查其内容、实例化对象、调用方法等。你通常会把它隐藏在接口(interface)、默认实现、工厂方法等东西后面。依赖注入(inject)可能依赖于这样的技术。

  2. 您可以使用 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/

相关文章:

c# - 使用 odata 和 web api 2 时创建 cookie

.net - 如何在解决方案上选择性地使用 dotnet pack

javascript - asp.net 将 javascript ajax 发送到用户控件

c# - 使用 SCardGetStatusChange 通知卡插入/移除而不轮询

c# - 非托管 C++ 在构建或不使用 COM 时通过自动注册调用 C# dll?

c# - 如何将所有对象相互比较?

.net - 检测到 AccessViolationException 时如何强制应用程序崩溃

vb.net - 如何在vb.net中创建T类型的对象

vb.net - Visual Studio 中用于选择当前 block 的键盘快捷键

mysql - "Conversion from string to type Double is not valid"错误VB.NET