Как сделать HTML-файл частью проекта MonoDevelop?
Вопрос
Проект является приложением GNOME, а не ASP.NET. Мне нужно загрузить файл welcome.html на главную страницу пользовательского интерфейса. Точно так же, как MonoDevelop. Но я не знаю, как сделать международные версии, которые будут загружаться на месте. И я не знаю, как связать его в двоичный файл, используя какое-то управление ресурсами.
Решение
MonoDevelop раньше использовал HTML для страницы приветствия, но в то время (около 18 месяцев назад) мы обнаружили, что веб-браузер GTK + является неудобной зависимостью для кроссплатформенного использования, поэтому переключился на простой GTK # с некоторым собственным фоном рендеринга.
Тем не менее, довольно просто использовать HTML с помощью Webkit-GTK & amp; Webkit # обертка. Создайте виджет WebKit.WebView, затем используйте метод LoadHtml для загрузки HTML из строки.
Чтение встроенного текстового ресурса из сборки довольно просто:
string text;
using (var stream = typeof(SomeTypeInYourAssembly).Assembly.GetManifestResourceStream (resourceId))
using (var sr = new StreamReader (stream))
text = sr.ReadToEnd ();
Это будет считывать ресурс, внедренный с аргументом компилятора C # / res: FILE [, ID] или с использованием " Embedded Resource " построить действие в MonoDevelop. Вы можете установить идентификатор ресурса в MD, используя панель proeprty, если вам не нравится значение по умолчанию.
Локализация сложнее. & Quot; .NET way " будет использовать локализованные спутниковые сборки, содержащие локализованные ресурсы. Однако в MD мы использовали файл XSLT для преобразования файла XML в HTML. Затем мы могли бы довольно легко локализовать файл XML, используя классы Gettext и XML DOM.