Публикации по теме '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 просмотров
schedule
26.11.2023
Виндзорский контейнер: как принудительно избавиться от объекта?
У меня есть объект, реализующий IDisposable, зарегистрированный в контейнере Windsor, и я хотел бы избавиться от него, чтобы вызвать его метод Dispose, и при следующем вызове Resolve он получит новый экземпляр.
Делает
container.Release(obj);...
9641 просмотров
schedule
03.08.2022
Можете ли вы зарегистрировать существующий экземпляр типа в контейнере Windsor?
Можно ли в контейнере Windsor IOC зарегистрировать тип, для которого у меня уже есть экземпляр, вместо того, чтобы контейнер создавал его?
2936 просмотров
schedule
28.04.2024
Что такое Виндзорский замок и почему меня это должно волновать?
Я давний разработчик Windows, у меня есть опыт работы с Win32 и ранним COM. Я работаю с .NET с 2001 года, поэтому неплохо владею C # и CLR. Я никогда не слышал о Castle Windsor, пока не начал участвовать в Stack Overflow. Я прочитал руководство...
70607 просмотров
schedule
13.02.2024
Castle Windsor разрешение и дженерики
У меня есть следующее:
public interface ISubject { ... }
public class Subject<T> : ISubject { ... }
public class MyCode<T> {
...
pulic void MyMethod()
{
var item = container.Resolve<ISubject>(); //????? how...
7330 просмотров
schedule
29.05.2024
Список всех типов, зарегистрированных в экземпляре контейнера Castle Windsor
Какой самый простой способ программно перечислить зарегистрированные типы в Castle Windsor?
Спасибо
5531 просмотров
schedule
08.10.2022
Использование контейнера IoC в качестве локатора службы для HttpHandler
Этот вопрос относится к моему другому сообщению .
Итак, немного повозившись, я решил сделать это таким образом. Что, кажется, работает нормально, когда я запускаю его, хотя я получаю следующую ошибку в NUnit: не удалось загрузить файл или сборку...
1000 просмотров
schedule
22.11.2023
Внедрение свойства 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 просмотров
schedule
23.03.2024
iPOJO: пространство имен уникальности идентификатора для @Publishes и @Subscriber
я создаю некоторые компоненты, используя iPOJO потрясающие обработчики EventAdmin . в документации требуется атрибут имени для издателей и подписчиков, действующий как «уникальный идентификатор».
какова область применения уникальности?...
84 просмотров
schedule
12.08.2022
Как настроить 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
Единица работы и Entity Framework — вычисляемые свойства
Предполагая, что у меня есть следующий объект POCO:
public class SomeEntity
{
public int SomeProperty { get; set; }
}
и следующий репозиторий
public class SomeEntityRepository
{
Context _context;
public...
319 просмотров
schedule
23.05.2024
Зарегистрируйте строковое значение для конкретного имени параметра
Я использую Autofac, и у меня есть несколько классов, которые запрашивают параметр типа string и name lang. Есть ли способ зарегистрировать строковое значение для всех параметров с именем «lang», чтобы оно разрешалось автоматически? Я не хочу...
2191 просмотров
schedule
08.03.2024
Возможности использования абстрактных фабрик со 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 просмотров
schedule
19.01.2024
Castle Windsor разрешает неправильную реализацию интерфейса для области MVC
У меня есть интерфейс в основном проекте моего решения: IPersonManager, у которого есть две конкретные реализации, принадлежащие их собственным соответствующим проектам.
В моем веб-проекте есть область MVC, представляющая оба этих проекта, и в...
253 просмотров
schedule
04.04.2024
Служба DI без зависимых служб
Я работаю с Ninject для реализации приложения с использованием внедрения зависимостей. Я чувствую, что у меня есть довольно полное понимание концепций, и мне очень понравилась слабосвязанная и тестируемая архитектура, которую приложение получило с...
96 просмотров
schedule
15.07.2022
Управляет ли Tapestry всеми потоками внутри приложения?
Рассмотрим сервис, который запускает внутри себя некий thread . Будет ли Tapestry 5 управлять этим потоком в части, например. закрытие hibernate сеансов внутри такого потока или нет? (Например, мы можем передать объект Session внутри такого...
207 просмотров
schedule
07.12.2023