Инверсия Управления / Внедрение зависимости с хорошим объяснением и примерами в .NET?

Привет!

У меня нет большого знания о платформах МОК/DI в платформе .NET. Кто-либо может дать мне ссылки, который экс-планирует МОК/DI подробно с немногими пример в C#? Я хочу, проходят его и получают больше идеи об этих платформах.

Так, чтобы я мог получить знание, где и Как я могу использовать эти платформы, полезны в реализации проекта.



nrk

5
задан nRk 30 January 2010 в 10:05
поделиться

4 ответа

Ваша лучшая ставка - слишком заглянуть на один из веб-сайтов МОК/ДИ

Spring.net. http://www.springframework.net/

Виндзорский замок. http://www.castleproject.org/container/index.html

Карта структуры http://structuremap.sourceforge.net/Default.htm

Хорошие статьи о сравнении МОК

http://blog.ashmind.com/index.php/2008/08/19/comparing-net-di-ioc-frameworks-part-1/

http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx

Надеюсь, это поможет. Я лично пользовался Spring.Net и замком Виндзор - последний, наверное, легче понять и использовать.

Взгляните и на этот вопрос. Примеры контейнеров IoC

2
ответ дан 18 December 2019 в 11:56
поделиться

Существует только один способ эффективно диагностировать проблемы - удаленные отладки.

Получите 2-й ПК. Установите msvsmon на нем. Добавьте Post Build Step или Utility Project, который копирует продукты Build на удаленный ПК.

Теперь вы должны иметь возможность размещать точки останова в обработчиках WM_Paint, обработчики WM_SIZE и так и на самом деле проследить свой диалог, поскольку он выполняет размер и RedRaw. Если вы загружаете символы с серверов MS Symbol, вы сможете увидеть полные стеки вызовов.

Некоторые хорошо размещенные точки останова - в вашем WM_PAINT, WM_ERAGEBKGND обработчики, и вы должны иметь хорошее представление о том, почему ваше окно синхронно перекрашено рано во время цикла WM_SIZE.

Есть много окон в системе, состоящую из родительского окна со слоистыми детскими элементами управления - Windows Explorer осложнится панелями предварительного просмотра ListViews и т. Д. Исследователь не имеет проблем с мерцанием на измесу, поэтому это Можно получить мерцание свободного размера родительских окон: - То, что вам нужно сделать, это поймать перекраску, выяснить, что их вызвало, и, хорошо, убедитесь, что причина удалена.

-121--2078029-

Для общего введения в концепцию Di, включая всеобъемлющие примеры в C #, вы можете захотеть прочитать мою книгу впрыск зависимости в .NET .

12
ответ дан 18 December 2019 в 11:56
поделиться

Цель Kai упомянула некоторые очень хорошие ресурсы по конкретным реализациям контейнера IOC и соответствующих учебных пособий, однако они узко сосредоточены на дистанционном бане IOC, обсуждали и меньшее из общего введения / учебника.

Лично мне нравится введение ROB SENERINE BEST.

1
ответ дан 18 December 2019 в 11:56
поделиться

Это все о свободной муфте.

Представьте себе, что у вас есть класс FO, который зависит от класса BAR

public class Foo
{
      public Foo(Bar bar)
      {
      }
}

здесь, мы должны пройти экземпляр бар в класс для создания его. Что произойдет, если мы хотим иметь два разных реализация бара, один для взаимодействия с БД и один для тестирования?

Ну, мы бы создаем и интерфейс IBAR и используем это вместо этого, то мы можем использовать две конкретные реализации.

Теперь считают, что у нас много сложных зависимостей в много классов, которые называются множеством мест, если мы хотели изменить реализацию, мы должны были бы изменить код в каждом месте, что создается объект, реализованный IBAR, Это может быть много работы.

Вместо этого мы можем использовать инъекцию зависимости такой.

IUnityContainer myContainer = new UnityContainer();
myContainer.RegisterType<IBar, Bar>();
Foo foo = myContainer.Resolve<Foo>();

Здесь структура Unity вставила объект BAR в конструктор FOO, если вы изменили регистрацию типа в одном месте, вы измените, как объекты Foo будут решены по всему месту.

Когда у вас есть сложные зависимости, которые могут измениться, DI имеет важное значение!

0
ответ дан 18 December 2019 в 11:56
поделиться
Другие вопросы по тегам:

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