2016-12-07 16 views
2

Согласно документации Word Interop Microsoft.Office.Interop.Word.Application является интерфейсом, но я могу создать его новый экземпляр следующим образом:Как я могу создать новый экземпляр интерфейса Microsoft.Office.Interop.Word.Application

var application = new Microsoft.Office.Interop.Word.Application(); 

Также есть пример этого на DotNetPerls. Обычно невозможно создать экземпляры интерфейса на C#, так как это возможно? Является ли это особенностью COM или динамических типов?

ответ

5

Потому что это не интерфейс C#, а COM-интерфейс. COM-интерфейсы представлены в C# как интерфейсы с атрибутами ComImport и Guid.

[GuidAttribute("00020970-0000-0000-C000-000000000046")] 
public interface Application : _Application, 
    ApplicationEvents4_Event