Изучаю вопрос связанный с 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();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Столкнулся с проблемойПриложение WinForms, хочу вывести некоторую информацию в консоль
Как сделать так, чтобы сделать выдвигаемое меню свайпом, но не просто, чтобы после свайпа отображался объект, а чтобы и сама менюшка выезжала...
Что лучше использовать? Вместо SelectionChanged использовать SelectedItem
Есть числоНеобходимо с помощью цикла пройтись по его цифрам и сложить те, которые подходят по условию