Изучаю вопрос связанный с IOC (Инверсия управления), как я понял это некий абстрактный паттерн, который говорит,что нужно делать слабое связывание между элементами системы, и элементы зависят только от абстракции. А реализация этого паттерна это или Dependency injection или использование контейнера. Иcпользование контейнера более менее понятно, на примере Autofac. А вот как сделать просто Dependency Injection. Правильно ли я делаю реализация через конструктор? И что значит делать инжекцию через метод? Код
public interface IServise
{
string Print();
}
Класс ,который его реализует.
class Class1:IServise
{
public string Print()
{
string g = "строка";
return g;
}
}
Класс в который делаю инжекцию.
class ClassForInject
{
private IServise _srServise;
private string _a;
// в конструктор внедряю зависимость
public ClassForInject(IServise _srServise)
{
_a=_srServise.Print();
}
public void Metod2()
{
Console.WriteLine(this._srServise.Print());
// или
Console.WriteLine(_a);
}
}
И метод Main
class Program
{
static void Main(string[] args)
{
// тут я должен в конструктор добавить ссылку
ClassForInject k = new ClassForInject();
k.Metod2();
Console.ReadKey();
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Столкнулся с проблемойПриложение WinForms, хочу вывести некоторую информацию в консоль
Как сделать так, чтобы сделать выдвигаемое меню свайпом, но не просто, чтобы после свайпа отображался объект, а чтобы и сама менюшка выезжала...
Что лучше использовать? Вместо SelectionChanged использовать SelectedItem
Есть числоНеобходимо с помощью цикла пройтись по его цифрам и сложить те, которые подходят по условию