Ninject, Sprint.NET, Unity, Autofac, Castle.Windsor - все это примеры, которые доступны в рамках IoC. Однако мне нравится кривая обучения и контроль над написанием моих собственных. Это, безусловно, обычная практика, чтобы не «изобретать колесо» и просто использовать ранее существовавшие структуры. Если ваш комментарий идет по этим строкам, будьте осторожны.ASP.NET MVC3 Ручное кодирование IoC
Могут ли IoC быть реализованы без использования XML? Мне кажется, что большинство, если не все, из вышеупомянутых фреймворков используют XML, но я бы скорее просто написал мой на C# вместо использования XML для загрузки .dll. В любом случае C# все конвертируется в один .dll.
С моей точки зрения, если неправильно, пожалуйста, исправьте, IoC можно использовать с DI, чтобы сделать функциональность классов основанной на их определении и реализации, одновременно позволяя разделять проблемы.
Это выполняется на C#, используя библиотеку Microsoft. System.ComponentModel.IContainer, имея класс, который наследует ее. Класс, такой как Product, будет иметь интерфейс IProduct. Генерирующий конструктор затем наследовал бы от IContainer и конструктора, разрешал бы передавать репозиторий, инстанцируемый объект, который должен быть передан, и функцию, которая должна быть передана. Это позволило бы управлять действием контроллера, чтобы затем создать интерфейс (IProduct), создайте экземпляр генератора с текущим экземпляром репозитория, а затем передайте ему интерфейс и функцию.
Является ли эта настройка точной?
Я все еще пытаюсь узнать больше об этой теме и прочитал статьи wiki о IoC, DI и прочитал о Castle.Windsor, ninject, Unity и просмотрел несколько определений из MSDN в отношении библиотек C#, которые являются используемый. Любая помощь, исправления или предложения приветствуются. Спасибо
Все эти контейнеры IoC поддерживают конфигурацию кода, а не XML, а также – BrokenGlass
@BrokenGlass - спасибо, я этого не знал. Так что можно сделать все все в коде, а потом :) –
Ninject даже не имеет опции XML, это enitrely в коде. Большинство других поддерживают конфигурацию кода или xml. –