ЕДИНИЦА: передача в новом datacontext каждый раз?

Я использую EmacsW32, он работает отлично. РЕДАКТИРОВАНИЕ: Я теперь использую регулярный GNU Emacs 24, вижу ниже.

Посмотрите страница EmacsWiki для деталей.

мне, самое большое преимущество состоит в том что:

  • это имеет версию emacsclient, который запускает сервер Emacs, если никакой сервер не работает (откройте все свои файлы в том же окне Emacs)
  • это включает несколько полезных пакетов, таких как Nxml
  • , это имеет установщик Windows, или можно создать его из источников

И относительно XEmacs, согласно это сообщение Steve Yegge:

подводя итоги, я утверждал, что XEmacs имеет намного более низкую долю рынка, более плохую производительность, больше ошибок, намного более низкой устойчивости, и в этой точке, вероятно, меньше функций, чем GNU Emacs. При складывании всего этого это - более слабый кандидат большим полем.

РЕДАКТИРОВАНИЕ: Я теперь использую регулярный GNU Emacs 24. Это также содержит Nxml, может быть установлено или создано из источников, и с эта обертка , сервер Emacs запускается, если никакой сервер не работает. За Ваше здоровье!

5
задан mark smith 8 November 2009 в 13:55
поделиться

3 ответа

Я не уверен, что это работает, но пробовали ли вы зарегистрировать MyDataContext как компонент, а не отображение типов?

container.RegisterType<MyDataContext>();

вместо

container.RegisterType<MyDataContext, MyDataContext>();

EDIT на основе новой информации

По всей видимости, виноват в том, что MyDataContext имеет более одного конструктора. Это обычная проблема для большинства контейнеров DI, потому что им нужно выбрать и использовать только один. Если вы можете устранить двусмысленность, ограничив MyDataContext только одним конструктором, это, вероятно, будет самым простым решением.

В противном случае вы сможете использовать экземпляр InjectionConstructor для идентификации конструктора при регистрации репозитория. Предположим, вы хотите использовать конструктор, который принимает в качестве аргумента строку подключения:

string connectionString =
    ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
var injectedConnectionString = new InjectionConstructor(connectionString);
container.RegisterType<MyDataContext>(injectedConnectionString);
10
ответ дан 18 December 2019 в 13:15
поделиться

При выборе нескольких конструкторов Unity не знает, какой из них использовать. Он выберет тот, у которого больше всего аргументов, которые могут быть удовлетворены, но в этом случае есть два конструктора с двумя разрешаемыми аргументами.

Если вы не хотите связывать свой класс MyDataContext с Unity и используя атрибут InjectionConstructor , как было предложено Скоттом (проголосовало за :)), вы можете указать конструктор, который должен использоваться во время регистрации, используя свободный интерфейс. Подробнее см. Настройка внедрения конструктора, свойства и метода .

3
ответ дан 18 December 2019 в 13:15
поделиться

Я не вижу ваших конструкторов MyDataContext; но попробуйте добавить атрибут [InjectionConstructor] к тому, который вы хотите использовать.

1
ответ дан 18 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

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