Публикации по теме 'inversion-of-control'


Внедрение зависимостей в JavaScript
Внедрение зависимостей в JavaScript Реализация внедрения конструктора с помощью прокси-серверов JavaScript Удаление жестко заданных зависимостей в коде и предоставление взаимозаменяемых стратегий для алгоритмов путем внедрения зависимостей с помощью Inversion of Control-Container. Обновление от 30 марта 2023 г.: эта статья была перемещена на мой личный сайт. Вы найдете последние обновления этой статьи по адресу https:// thorsten.suckow-homberg.de..

Инверсия управления на реальных примерах React и Javascript
Инверсия управления (IoC) — это принцип разработки, который позволяет классам быть слабо связанными и, следовательно, их легче тестировать и поддерживать . В простом определении объекты не создают другие объекты, на которые они полагаются при выполнении своей работы. Вместо этого они получают нужные им объекты из внешнего источника. Это действительно хороший принцип проектирования (и, вероятно, лучшая практика), который младшие школьники склонны упускать из виду. Когда вы..

Тестируемый ванильный JavaScript
Каждый разработчик программного обеспечения побывал в этом месте: их просят добавить разовую функцию, которая кажется безобидной, она раздувается на ряд взаимосвязанных функций, и, видя ее после многочисленных эволюций, желает, чтобы они не могли написать ее по-другому. «Если бы мне сказали, зачем эта функция, я бы использовал фреймворк». «Если бы я знал, насколько важна эта функция для моего клиента, я бы сделал ее более тестируемой». Это борьба за итерацию, позволяющую..

Вопросы по теме 'inversion-of-control'

Castle Windsor: Как добавить вызов фабрики не в xml?
Я знаю, как сказать Castle Windsor разрешить ссылку из фабричного метода с помощью XML, но могу ли я сделать это программно через интерфейс Container.AddComponent ()? Если нет, есть ли другой способ сделать это из кода? РЕДАКТИРОВАТЬ: Кажется,...
2361 просмотров

Виндзорский контейнер: как принудительно избавиться от объекта?
У меня есть объект, реализующий IDisposable, зарегистрированный в контейнере Windsor, и я хотел бы избавиться от него, чтобы вызвать его метод Dispose, и при следующем вызове Resolve он получит новый экземпляр. Делает container.Release(obj);...
9641 просмотров

Можете ли вы зарегистрировать существующий экземпляр типа в контейнере Windsor?
Можно ли в контейнере Windsor IOC зарегистрировать тип, для которого у меня уже есть экземпляр, вместо того, чтобы контейнер создавал его?
2936 просмотров

Что такое Виндзорский замок и почему меня это должно волновать?
Я давний разработчик Windows, у меня есть опыт работы с Win32 и ранним COM. Я работаю с .NET с 2001 года, поэтому неплохо владею C # и CLR. Я никогда не слышал о Castle Windsor, пока не начал участвовать в Stack Overflow. Я прочитал руководство...
70607 просмотров

Список всех типов, зарегистрированных в экземпляре контейнера Castle Windsor
Какой самый простой способ программно перечислить зарегистрированные типы в Castle Windsor? Спасибо
5531 просмотров
schedule 08.10.2022

Использование контейнера IoC в качестве локатора службы для HttpHandler
Этот вопрос относится к моему другому сообщению . Итак, немного повозившись, я решил сделать это таким образом. Что, кажется, работает нормально, когда я запускаю его, хотя я получаю следующую ошибку в NUnit: не удалось загрузить файл или сборку...
1000 просмотров

Внедрение свойства NserviceBus
Я пытаюсь внедрить объект в свою сагу. Используя следующую конечную точку, когда сообщение поступает в метод дескриптора саги, свойство имеет значение null. Конечная точка: public class EndpointConfig : IConfigureThisEndpoint, AsA_Server,...
2079 просмотров
schedule 02.03.2024

Как сказать MEF воссоздать объект?
Я использую mef для создания веб-сервисов WCF. Так выглядит сервис: [Export] [ServiceContract] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [ServiceBehavior(InstanceContextMode =...
2158 просмотров
schedule 05.04.2024

Виндзорская типизированная фабрика не выпускает детей
У меня есть фабрика и компонент, зарегистрированные в Windsor 2.5.1, например: interface IFooFactory{ IFoo CreateFoo(); } interface IFoo { void DoSomething(); } class ConcreteFoo : IFoo, IDisposable { public void Dispose(){...
443 просмотров
schedule 22.08.2022

Почему Autofac не может найти log4net с помощью LogInjectionModule?
Как обсуждалось на Autofac Wiki, лучший способ автоматически внедрить log4net.ILog реализацию для класс должен использовать LogInjectionModule . Реализация этого модуля приведена в вики-статье: public class LogInjectionModule : Module {...
2140 просмотров
schedule 17.04.2024

Является ли это хорошим примером антипаттерна Bastard инъекции?
Я вижу, как ведущие разработчики пишут подобный код, и после прочтения книги Марка Симанна "Внедрение зависимостей в .NET" мне интересно, является ли конкретное "новое" "чужим", таким образом, "Незаконное внедрение"?? public class...
3223 просмотров

iPOJO: пространство имен уникальности идентификатора для @Publishes и @Subscriber
я создаю некоторые компоненты, используя iPOJO потрясающие обработчики EventAdmin . в документации требуется атрибут имени для издателей и подписчиков, действующий как «уникальный идентификатор». какова область применения уникальности?...
84 просмотров

Как настроить Castle Windsor для создания другой реализации интерфейса на основе параметра
У меня есть следующий код: class A:IA { } class B:IA { } и я имею class X { X( IA a) { } } а также class Y { Y( IA b) { } } Я хочу, чтобы при создании X реализация для IA была A, а при создании Y...
99 просмотров
schedule 01.10.2022

Зарегистрируйте строковое значение для конкретного имени параметра
Я использую Autofac, и у меня есть несколько классов, которые запрашивают параметр типа string и name lang. Есть ли способ зарегистрировать строковое значение для всех параметров с именем «lang», чтобы оно разрешалось автоматически? Я не хочу...
2191 просмотров

Возможности использования абстрактных фабрик со StructureMap
public interface IExecuter { void Execute(); } public class Executer : IExecuter { readonly Data _data; readonly IService _service; public Executer(Data data, IService service) { _data = data; _service =...
1159 просмотров

Castle Windsor разрешает неправильную реализацию интерфейса для области MVC
У меня есть интерфейс в основном проекте моего решения: IPersonManager, у которого есть две конкретные реализации, принадлежащие их собственным соответствующим проектам. В моем веб-проекте есть область MVC, представляющая оба этих проекта, и в...
253 просмотров

Служба DI без зависимых служб
Я работаю с Ninject для реализации приложения с использованием внедрения зависимостей. Я чувствую, что у меня есть довольно полное понимание концепций, и мне очень понравилась слабосвязанная и тестируемая архитектура, которую приложение получило с...
96 просмотров

Управляет ли Tapestry всеми потоками внутри приложения?
Рассмотрим сервис, который запускает внутри себя некий thread . Будет ли Tapestry 5 управлять этим потоком в части, например. закрытие hibernate сеансов внутри такого потока или нет? (Например, мы можем передать объект Session внутри такого...
207 просмотров

Могу ли я определить настраиваемые атрибуты для типа прокси в Castle Windsor
У меня есть класс, который я проксирую с помощью Castle Dynamic Proxy. Я хочу добавить некоторые настраиваемые атрибуты к методам прокси (которые не определены в прокси-классе). Это возможно. Я хочу этого, потому что хочу создать уровень веб-API...
731 просмотров

Контейнер DI и адаптированный MVC
Я создал внутреннюю структуру MVC PHP, и теперь я изо всех сил пытаюсь внедрить контейнер DI. Я принял Pimple в качестве DiC, я прочитал книгу Криса Хартьеса " The Grumpy Programmer's Guide To Создание тестируемых PHP-приложений " (очень хорошее и...
1053 просмотров