Какова лучшая идея для управления ресурсами в Silverlight? - PullRequest
0 голосов
/ 12 мая 2009

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

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

Подсказка

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

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

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

Спасибо

1 Ответ

1 голос
/ 12 мая 2009

Я не уверен, что вы пытаетесь сделать, поскольку ваш вопрос был довольно расплывчатым, но я могу пролить свет на то, как можно управлять ресурсами на платформе 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. вы извлекаете из файла.

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

Итак, вкратце:

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