所以我正在阅读这篇文章[1],并且有一个部分"要声明一种将帐户信息导出到Excel"使用以下示例:
using Excel = Microsoft.Office.Interop.Excel;
...
static void DisplayInExcel(IEnumerable<Account> accounts)
{
var excelApp = new Excel.Application();
...
}
Excel.Application是一个界面。这怎么可能?
我认为接口不可实现。谢谢!
答案 0 :(得分:0)
确实Excel.Application()
不是实例,而是属性类型是应用程序接口。那么如何实例化,这要归功于以下属性
[CoClass(typeof(ApplicationClass))].
ApplicationClass实现Application(接口)并返回Application接口类型的属性。
[CoClass(typeof(ApplicationClass))]
[Guid("000208D5-0000-0000-C000-000000000046")]
public interface Application : _Application, AppEvents_Event
{
}
看看这段代码。
private static void DisplayInExcel(IEnumerable<string> accounts)
{
var excelApp = new Excel.Application{};
}
它也有效。这不是魔术!
我希望它有所帮助