2009-05-12 1 views
0

Мне нужно создать фреймворк silverlight, который имеет все следующие функции о ресурсах.Какова лучшая идея для управления ресурсами в Silverlight?

  1. Частичная загрузка. Итак, я не могу использовать образец файла ресурсов (*. Resx).
  2. Сильно типизированный файл ресурсов. Потому что это очень легко отлаживать.
  3. Легко редактировать с помощью текстового редактора. Потому что вы не можете использовать какой-то сложный редактор, например visual studio, на веб-сервере.
  4. Легко обнаружить недостающие ресурсы.

Подсказка

Моя структура построена на с визуальным проектом Студии Интеграции пакета. Таким образом, я могу изменить большинство функций Visual Studio, таких как редактор, панель инструментов, меню.

обновление # 1

Если это невозможно, так, я буду создавать некоторые ресурсы редактировать на веб-сервере для управления этим ресурсом.

Спасибо,

ответ

1

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

Ресурсы Silverlight могут быть встроены в любой XAML, так как все визуальные элементы имеют ResourceDictionary, доступный через свойство Resources.

<Grid> 
    <Grid.Resources>   

     <DataTemplate x:Key="MyTemplate"> 
     </DataTemplate> 

    </Grid.Resources> 
</Grid> 

Однако рекомендуется использовать специальные файлы XAML, называемые «Словари ресурсов».

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > 

    <DataTemplate x:Key="MyTemplate"> 
    </DataTemplate> 

</ResourceDictionary> 

Silverlight 3 обеспечивает возможность автоматического слияния этих ресурсных словарей в словарь основных ресурсов приложения.

<Application.Resources> 
    <ResourceDictionary> 

     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Resources/A.xaml"/> 
      <ResourceDictionary Source="Resources/B.xaml"/> 
      <ResourceDictionary Source="Resources/C.xaml"/> 
     <ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary> 
<Application.Resources> 

Для того, чтобы объединить словарь ресурсов с ресурсами вашего приложения, словари ресурсов, должны находиться в пределах сжатого пакета XAP, который используется для развертывания Silverlight приложений вниз к клиенту.

Однако, если бы вы захотели, вы могли бы хранить веточки ресурсов XAML на веб-сервере и переносить их в приложение Silverlight с помощью WebClient для загрузки файла, а затем с помощью XamlReader для создания объектной модели в памяти из XAML строка, которую вы извлекаете из файла.

Ресурсные словари по своей сути строго типизированы, но не тип-сейф. В этом случае вы не получите ошибку времени компиляции, если в XAML есть неправильно введенный элемент. Если в одном из ваших ресурсов произошла ошибка, вы узнаете, только когда ссылка на нее инициализируется, и механизм рендеринга пытается создать экземпляр вашего ресурса.

Так короче:

  1. Да.
  2. Да.
  3. Да.
  4. No.
+0

Спасибо. Каков тип ресурса, который может содержаться в файле Словари ресурсов. Я думаю, что это только таблица стилей или относительный uri. Эта идея нравится использовать простой файл ресурсов (*. Resx). –

+0

Любой тип может быть сохранен в XAML. Некоторые из них легче других представлять в XAML, чем другие. Если вы хотите встраивать двоичные файлы, вы просто добавляете их в проект и отмечаете их как ресурсы, чтобы их компилировать в сборку. – markti