как создать очень простую сменную систему

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

позволяет говорят, что у меня есть плагин imageeffect.cs в папке плагинов. этот класс ДОЛЖЕН иметь свойства, такие как "заголовок". Моя программа получает этот "заголовок", и динамично загрузите поле комбинированного списка этим заголовком. Таким образом, теперь моя программа распознает плагин. Теперь, когда пользователь нажимает кнопку, я хочу некоторые данные (обработанный моей программой) быть выданным к imageeffect.cs плагину, где это делает любую работу над ним и возвращает меня состояние.

так резюме. моя программа читает сменный каталог. загрузки свойство "заголовка" каждого плагина (определил мой, кто бы ни создает плагин) к полю комбинированного списка. Когда пользователь нажимает кнопку, "данные", или в этом случае изображение отправляется в плагин, и плагин действительно работает над ним. это затем возвращает меня "Состояние" или в этом случае изображение назад с любыми эффектами, которые это хотело.

5
задан Josh Lee 28 January 2010 в 10:08
поделиться

3 ответа

Это зависит от того, что важнее: удобство чтения или производительность. Я бы ожидал, что один запрос и предварительное заполнение массивов PHP будет выполняться быстрее, так как подключения к базам данных дороги, но тогда простой запрос для каждого раздела гораздо более читаем.

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

-121--4244874-

Вы не должны использовать e.printStackTrace () напрямую - при этом информация будет отправлена в журнал Android без отображения того приложения (тега журнала), из которого она поступила.

Как уже упоминалось, продолжайте фиксировать Исключение , но используйте один из методов андроид.util.Log для ведения журнала. Можно зарегистрировать только сообщение, но не трассировку стека, или использовать подробный журнал для трассировки стека:

try {
    Object foo = null;
    foo.toString();
} catch (NullPointerException ex) {
    Log.w(LOG_TAG, "Foo didn't work: "+ ex.getMessage());
    Log.d(LOG_TAG, Util.stackTraceWriter(ex));
}

Необходимо удалить сообщения журнала DEBUG или VERBOSE из производственных сборок. Самый простой способ - использовать ProGuard для удаления журнала [dv] вызовов из кода.

-121--1196104-

MEF с Catalog .

9
ответ дан 18 December 2019 в 14:46
поделиться

Некоторое время назад я написал статью в блоге, чтобы проиллюстрировать очень простую систему плагинов. Этого может быть достаточно для ваших нужд:

http://crazorsharp.blogspot.com/2009/03/net-reflection-part-2-loading.html

4
ответ дан 18 December 2019 в 14:46
поделиться

Хорошо. Сначала я бы предположил, что ваши плагины скомпилированы .dlls, а не просто .cs файлы. Однако, если вы хотите использовать только файлы .cs, сначала посмотрите здесь:

http://www.codeproject.com/kb/cs/livecodedotnet.aspx

, а затем для реализации системы плагина, Посмотрите на эту статью:

http://www.codeproject.com/kb/cs/c__plugin_architecture.aspx

Надеюсь, что помогает :)

0
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

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