Как я могу инициализировать объекты NetOffice.WordApi, используя объекты Microsoft.Office.Interop?

У меня есть проект надстройки Microsoft Office на Visual Studio. Он использует Microsoft.Office.Interop.dll. В рамках логики кода мне нужно использовать NetOffice.WordApi вместо обычных сборок Interop. Мой вопрос заключается в следующем: поскольку NetOffice является оболочкой для Microsoft.Office.Interop.dll, как я могу инициализировать объекты NetOffice.WordApi, используя объекты Microsoft.Office.Interop (например, Application -> Application, INDocument -> NODocument или Table to Таблица)

1 ответ

Каждый класс в NetOffice имеет конструктор, который позволяет вам обернуть существующий __ComObject:

public Application(COMObject parentObject, object comProxy) : base(parentObject, comProxy)
{
    // ...
}

Первый параметр ожидает родительский NetOffice COMObject (которого у вас нет), поэтому передайте null а второй твой __ComObject,

Таким образом:

var wrappedApp = new Application(null, yourInteropObject);

Вы можете увидеть конструктор (а также просмотреть исходный код) здесь: https://github.com/caioproiete/NetOffice/blob/master/Source/Word/Classes/Application.cs#L101

Другие вопросы по тегам