Существует ли МОК.NET, который предпочитает конвенцию по конфигурации?

Мне удалось воспроизвести вашу проблему. Похоже, что изменение, внесенное в pyodbc 4.0.25, вызывает проблемы с запросами к базе данных Access, когда эти запросы используют целочисленные параметры.

О проблеме сообщалось на GitHub здесь . В то же время, понизить до pyodbc 4.0.24.

Обновление 1

Если у вас по-прежнему возникают проблемы после перехода на 4.0.24, проблема может быть связана с самой базой данных. Пожалуйста, рассмотрите возможность открытия отдельного выпуска GitHub с помощью MCVE и примера базы данных, которая может воспроизвести проблему.

7
задан Perpetualcoder 15 January 2009 в 20:06
поделиться

6 ответов

Я использую Ninject и StructureMap - оба позволяют Вам обеспечивать электричеством свою конфигурацию без XML.

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

2
ответ дан 7 December 2019 в 03:21
поделиться

Возможно, можно ли использовать DI без контейнера?

Вот пример, который использует инжекцию конструктора:

public static void Main() {
  ILogger logger = new FileLogger();
  ISession session = new ConcreteSession();
  IRepository repository = new MyDataRepositoryImpl(session, logger);

  IApplication app = new MyApplication();
  app.AddModule(new DataSelector(repository));
  app.AddModule(new Editor(repository, new MyEditorFactory(session)));
  app.AddModule(new LdapAuthenticator(session, logger));
  // ...
  app.Run();
}

Если Вы сделаете это этот путь, то Ваш исполняемый модуль будет иметь зависимости ко всему, таким образом, необходимо будет ограничить его ответственность перед просто включающимися вещами вместе. Можно сохранить объем кода приложения чистым в других модулях.

Часто Вам не нужны усовершенствованные платформы для управления зависимостями с инжекцией.

2
ответ дан 7 December 2019 в 03:21
поделиться

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

4
ответ дан 7 December 2019 в 03:21
поделиться

Попробуйте LinFu. Это - один из большинства самых легких и гибких контейнеров там и требует наименьшего количества объема кода, и это - единственный контейнер во что сравнение контейнера МОК для передачи ВСЕХ тестов. Наслаждаться :)

1
ответ дан 7 December 2019 в 03:21
поделиться

Последняя версия StructureMap, 2.5.2, не только позволяет Вам настроить свой контейнер без XML, как Ryan сказал, но это также имеет способность к вещам AutoWire согласно конвенции, которая, кажется, точно, что Вы ищете.

ObjectFactory.Initialize(x => x.Scan(scanner =>
                                        {
                                           scanner.TheCallingAssembly();
                                           scanner.WithDefaultConventions();
                                        }));;

Из документов о IAssemblyScanner. WithDefaultConvents ():

Добавляет DefaultConventionScanner к операции сканирования. т.е. реальный класс под названием "Что-то", что реализует "ISomething", будет автоматически добавлен к PluginType "ISomething"

Я лично не сделал многого с ним, поскольку у меня уже была существующая конфигурация, которая использовала Быстрый Интерфейс. Но это выглядит многообещающим.

Править: Jeremy Miller просто поднял сообщение о том, как создать Ваши СОБСТВЕННЫЕ Конвенции...

0
ответ дан 7 December 2019 в 03:21
поделиться

Замок Windsor позволяет это через вызовы Регистра. Простой сценарий, скажем, у Вас есть много Контроллеров, которые реализуют интерфейс IController:

container.Register(AllTypes.FromAssembly(assemblyA).BasedOn(typeof(IController));

Можно упростить это далее путем создания интерфейса IService (никакие участники) и добавления его к вышеупомянутому. Этот путь при создании сервиса он автоматически регистрируется.

0
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

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