Инъекция параметров с помощью Prism 7 и Unity - PullRequest
0 голосов
/ 01 апреля 2019

Я использую Insight.Database от Jon Wagner в качестве микро-ORM, что означает отсутствие конкретных реализаций для моих (баз данных) интерфейсов.

Я пытаюсь внедрить один из этих интерфейсов в мою Prism 7 MainWindowViewModel, просто чтобы посмотреть, существует ли база данных (на данном этапе - очевидно, я сделаю намного больше позже).

Однако, либо новое Unity облажалось, либо Prism не нравится, как я это делаю. В старые времена только с Unity это было не совсем восхитительно, но вполне нормально, используя следующий код -

var conn = ConfigurationManager.ConnectionStrings["default"];
container.RegisterType<IConnection>(new InjectionFactory(con 
                         => conn.AsParallel<IConnection>());

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

с помощью

var container = containerRegistry.GetContainer();

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

container.RegisterInstance(typeof(IConnection),
     "DbConnection", new InjectionFactory(con =>    
        connection.AsParallel<IConnection>()), null);

Это компилируется, но абсолютно не внедряется. Я сталкиваюсь с ошибками во время выполнения, когда AutoWireUp пытается создать экземпляр MainWindowViewModel.

Может ли кто-нибудь вообще указать мне ответ или полезный ресурс?

1 Ответ

0 голосов
/ 01 апреля 2019

Как правило, это продолжалось до сих пор.

Во-первых, убедитесь, что App.xaml.cs включает это

using Unity;

, что дает нам доступ к RegisterType ().

Оттуда это все, что нужно.

container.RegisterType<IConnection>(new InjectionFactory(s => 
connection.AsParallel<IConnection>()));

Извините, что беспокою вас, парни. Теперь все хорошо.

Я отправил ответ, потому что сомневаюсь, что стану последним, кто столкнется с этим, но мы живем надеждой.

...