Я могу записать файл на ПК клиента с помощью Silverlight

Вы можете использовать присоединенное свойство cal:Action.TargetWithoutContext, чтобы установить DataContext из Button для родителя B_ViewModel:

<DataTemplate DataType="{x:Type vm:C_ViewModel}">
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="{Binding CName}"  />
        <Button Margin="2"
                cal:Action.TargetWithoutContext="{Binding Path=DataContext, RelativeSource={RelativeSource AncestorType=TreeViewItem, AncestorLevel=2}}"
                cal:Message.Attach="Remove($dataContext)" 
                Content="Delete"/>
    </StackPanel>
</DataTemplate>
10
задан DkAngelito 15 April 2009 в 21:25
поделиться

5 ответов

В Silverlight 3.0 у вас будет доступ для чтения и записи файлов через OpenFileDialog . В Silverlight 2.0 у вас есть доступ к изолированному Sotrage, который позволит вам сохранить в песочнице. Вы, вероятно, никогда не будете иметь полный доступ к файловой системе без разрешения пользователя.

8
ответ дан 3 December 2019 в 23:15
поделиться

Вы не можете сделать это по соображениям безопасности:

Silverlight приложения не использовать файловую систему операционной система и ограничены в использовании изолированное хранилище для сохранения и доступа файлы, поэтому это пространство имен [System.IO] не предоставить любую дополнительную функциональность. Для получения дополнительной информации о том, как Использование приложений на основе Silverlight изолированное хранилище, см. Изолированное хранилище .

Если возможно, вы можете сместить его так, чтобы сервер выполнял кодирование, а файл был доступен для загрузки традиционным способом.

Если вы При кодировании для обеспечения конфиденциальности / безопасности рассмотрите возможность загрузки только по безопасному протоколу (HTTPS с использованием SSL).

3
ответ дан 3 December 2019 в 23:15
поделиться

Другой вариант (не изящный, но работает) может состоять в том, чтобы выполнить пинг-понг с помощью сервисов:

  • Получить файл с сервера.
  • Выполните необходимое кодирование / преобразование на стороне клиента.
  • Снова отправьте его на сервер, используя службу WCF, сохраните его в сеансе.
  • Вызовите метод javascript из SL, который сделает запрос к пользовательскому HTTP-обработчику.
  • Этот пользовательский HTTP-обработчик будет возвращать файл, который находился в сеансе, как вложение (в первый раз, когда появится неприятная панель из IE ... вы собираетесь что-то скачать ...).

Мой случай немного проще, в моем приложении мне нужно было экспортировать диаграмму БД в JPEG, а также выполнить экспорт в отчет HTML, я использовал этот подход (ping pong:)).

Если вы хочу посмотреть:

http://www.dbschemaeditor.com

HTH Braulio

0
ответ дан 3 December 2019 в 23:15
поделиться

Вы можете использовать IsolatedStorageFile Класс для этого с использованием silverlight.

Другая ссылка: Как читать и записывать файлы в изолированном хранилище?

3
ответ дан 3 December 2019 в 23:15
поделиться

В Silverlight 4 это можно сделать примитивным способом, используя AutomationFactory для автоматизации объекта FileSystemObject.

см .: http://justinangel.net/CuttingEdgeSilverlight4ComFeatures#BlogPost=CuttingEdgeSilverlight4ComFeat

0
ответ дан 3 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: