так позволяет расположению дизайн сначала. У меня есть поле комбинированного списка с кнопкой, и у меня есть папка плагинов.
позволяет говорят, что у меня есть плагин imageeffect.cs в папке плагинов. этот класс ДОЛЖЕН иметь свойства, такие как "заголовок". Моя программа получает этот "заголовок", и динамично загрузите поле комбинированного списка этим заголовком. Таким образом, теперь моя программа распознает плагин. Теперь, когда пользователь нажимает кнопку, я хочу некоторые данные (обработанный моей программой) быть выданным к imageeffect.cs плагину, где это делает любую работу над ним и возвращает меня состояние.
так резюме. моя программа читает сменный каталог. загрузки свойство "заголовка" каждого плагина (определил мой, кто бы ни создает плагин) к полю комбинированного списка. Когда пользователь нажимает кнопку, "данные", или в этом случае изображение отправляется в плагин, и плагин действительно работает над ним. это затем возвращает меня "Состояние" или в этом случае изображение назад с любыми эффектами, которые это хотело.
Это зависит от того, что важнее: удобство чтения или производительность. Я бы ожидал, что один запрос и предварительное заполнение массивов 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]
вызовов из кода.
Некоторое время назад я написал статью в блоге, чтобы проиллюстрировать очень простую систему плагинов. Этого может быть достаточно для ваших нужд:
http://crazorsharp.blogspot.com/2009/03/net-reflection-part-2-loading.html
Хорошо. Сначала я бы предположил, что ваши плагины скомпилированы .dlls, а не просто .cs файлы. Однако, если вы хотите использовать только файлы .cs, сначала посмотрите здесь:
http://www.codeproject.com/kb/cs/livecodedotnet.aspx
, а затем для реализации системы плагина, Посмотрите на эту статью:
http://www.codeproject.com/kb/cs/c__plugin_architecture.aspx
Надеюсь, что помогает :)