Оболочка .NET для Webkit - PullRequest
1 голос
/ 22 мая 2011

Я создал браузер в Visual Studio 2011 с оболочкой WebKit .NET.Но так как я новичок в C #, у меня может возникнуть странный вопрос ...

Почему я не могу просто использовать: http://www.webkit.org/ для моего браузера?И если это невозможно, насколько сложно было бы создать оболочку .NET для WebKit?И как ...

1 Ответ

6 голосов
/ 22 мая 2011

Потому что Webkit был написан на C ++, а не на C #. Уровень трансляции необходим для маршалинга между средой выполнения управляемого кода C # и неуправляемым кодом в Webkit. Это не особенно сложно для Webkit, он поддерживает интерфейс автоматизации COM. То, что хорошо поддерживает .NET.

Необходимой отправной точкой является библиотека типов для Webkit. Это COM-версия метаданных сборки, она описывает неуправляемые типы COM-интерфейсов нейтральным языком. Утилита .NET Tlbimp.exe преобразует библиотеку типов в библиотеку взаимодействия .NET. Это легко сделать в Visual Studio, вы используете Project + Add Reference, вкладку Browse и выбираете файл Webkit.tlb. Это автоматически создает сборку Webkit.Interop.dll, версию .NET интерфейса COM.

Как вы можете подозревать, этот интерфейс не особенно маленький. Оттуда вы можете написать дружественные классы-обертки .NET, которые скрывают сложность интерфейса, взятую этим проектом SourceForge . Изучение его, чтобы увидеть, как он использует интерфейс, должно быть поучительным. Элемент управления .NET WebBrowser и классы HtmlDocument и HtmlElement работают точно так же, но для IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...