在什么时候(运行时)断开的引用会引发异常?

时间:2018-11-15 07:31:17

标签: c# office-interop

我在我的应用程序中使用了对<key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>Description.</string> <key>NSLocationAlwaysUsageDescription</key> <string>Description.</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Description.</string> 的引用,这将允许我添加将Word文档转换为PDF的功能。只有少数最终用户才能使用此功能,而这些用户都将拥有MS Office。

在没有Office的工作站上启动应用程序时会发生什么?应用程序会立即失败还是仅在调用Interop方法时失败?

1 个答案:

答案 0 :(得分:2)

它应该在需要从互操作库中加载类型信息时失败。通常在编译调用互操作方法的任何函数时。假设您没有通过自己的任何方法参数,接口,基类等泄漏任何类型的数据。

这通常意味着您要编写如下内容:

if(OfficeAvailable)
{
   DoOfficeWork();
}
else
{
   Fallback();
}

而不是:

if(OfficeAvailable)
{
    var app = new Outlook.Application();
    app.DoSomething();
}
else
{
    //Do other things
}

即将Office交互推入专用方法中,如果您不使用Office,您甚至不尝试调用,而不是尝试通过单个功能检测并有条件地使用Office inline。 / p>