I am really interested in some architectural methods. I like DI and IOC, but I don't understand costructor injection; why is it so complicated. I've written the code below which uses constructor injection:
namespace DependencyInjection
{
    class Program
    {
        static void Main(string[] args)
        {
            ConstructorInjectionClass myCtx = new ConstructorInjectionClass(new PdfFormat());
            myCtx.Print();
            Console.Read();
        }
    }
    public interface IFormat
    {
        void Print();
    }
    public class PdfFormat : IFormat
    {
        public void Print()
        {
            Console.WriteLine("Pdf Format Print is completed...");
        }
    }
    // Constructor Injection
    public class ConstructorInjectionClass
    {
        private IFormat _format;
        public ConstructorInjectionClass(IFormat format)
        {
               _format = format;
        }
        public void Print()
        {
            _format.Print();
        }
    }I've written some code below. I think it's simple.
    public interface IFormat
    {
        void Print();
    }
    public class PdfFormat : IFormat
    {
        public void Print()
        {
            Console.WriteLine("Pdf Format Print is completed...");
        }
    }
   public interface ISave
    {
        void Add();
    }
    public class Sql: ISave
    {
        public void Add()
        {
            Console.WriteLine("Adding to SQL is completed...");
        }
    }
    // Constructor Injection
    public class ConstructorInjectionClass
    {
        public ConstructorInjectionClass(IFormat format)
        {
               format.Print();
        }
         public ConstructorInjectionClass(ISave saver)
        {
              saver.Add();
        }
Why should I use constructor injection? Advantages or disadvantages of these two methods?
 
     
     
     
    