27th
Дек

SilverLight 4.0 + COM API. Breaking the habit…

Posted by Chas under си шарп, Статьи

Как известно, из SilverLight-приложения достучаться до файловой системы непросто, что вполне логично с точки зрения безопасности. Нет, ну добраться до файла в каталоге «Мои документы» – нет проблем, в ином месте – приходится изобретать велосипед. В этой статье я опишу устройство подобного велосипеда.

автор: dab00

На днях писал одно SilverLight-приложение, в котором было необходимо при создании в базе данных новой записи создавать на файл-сервере каталог с соответствующим названием, добавлять/удалять файлы в/из каталог(а) и пасти информацию обо всех файлах, находящихся в целевом каталоге. Скажем, что-то отдаленно напоминающее систему управления версиями.
И вот когда, наконец, убив несколько дней на разработку я приступил к реализации функционала работы с файловой системой… сначала мне показалось, что я выбрал не ту технологию. Даже всерьез рассматривал вариант переноса пользовательских каталогов «Мои документы» на сервер – куда деваться – неужели столько времени потрачено впустую…

А ларчик просто открывался – на помощь пришла старая добрая технология COM.
Достаточно было импортировать в проект пространство имен System.Runtime.InteropServices.Auto mation, дальше – песня.

Хочешь – FileSystemObject:
Dim fso As Object = AutomationFactory.CreateObject(«Scr ipting.FileSystemObject»)

Хочешь – Shell.Application:
Dim sh As Object = AutomationFactory.CreateObject(«She ll.Application»)

Хочешь WshShell:
Dim wshShell As Object = AutomationFactory.CreateObject(«WSc ript.Shell»)

Со всеми вытекающими свойствами и методами. Просто праздник какой-то .

На всякий случай можно проверить, как там дышит AutomationFactory:
If AutomationFactory.IsAvailable Then

И дело в шляпе. Easy peasy lemon squeezy . Хорошо что приложение было внебраузерным – если бы такие фокусы прокатили в браузере, разработчиков мелкомягких можно было бы смело расстрелять раз несколько. В общем, как добрался я до COM API, отпустило меня . Такая вот история.

P.S. В Silverlight 5 можно обойтись и без «велосипеда». Правда в настоящий момент (11.11.11) доступна только RC-версия.

тема на форуме

Похожие статьи

Теги: | |