コード例 #1
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("DIConfig.json");

            Configuration = builder.Build();

            //TODO: Comment later for other examples
            IMessageWriter writer     = new ConsoleMessageWriter();
            var            salutation = new Salutation(writer);

            salutation.Salute();

            //TODO: Remove to use late binding
            //var typeName = Configuration["MessageWriter"];
            //var type = Type.GetType(typeName, true);
            //IMessageWriter writer = (IMessageWriter)Activator.CreateInstance(type);
            //var salutation = new Salutation(writer);
            //salutation.Salute();

            //TODO: Remove to Use Decorator Pattern
            //IMessageWriter writer = new SecureMessageWriter(new ConsoleMessageWriter());
            //var salutation = new Salutation(writer);
            //salutation.Salute();
        }
コード例 #2
0
ファイル: Startup.cs プロジェクト: YavorYanchev/Playground
        public static void Main()
        {
            IMessageWriter writer   = new ConsoleMessageWriter();
            var            salution = new Salutation(writer);

            salution.Exclaim();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: wenchin77/di-is-difficult
        static void Main(string[] args)
        {
            // 原本只要這樣一行
            System.Console.WriteLine("Hello World!");

            // 用 DI 的方法
            IMessageWriter writer     = new ConsoleMessageWriter();
            var            salutation = new Salutation(writer);

            salutation.Say("Hello DI!");

            // 用裝飾者模式寫個新的 IMessageWriter 實作看看
            IMessageWriter secureWriter = new SecureMessageWriter(writer, "A");
            var            salutation1  = new Salutation(secureWriter);

            salutation1.Say("Hello DI!!!!!");
        }
コード例 #4
0
        static void Main()
        {
            #region Late Binding
            //string directory = Directory.GetCurrentDirectory();
            //IConfigurationRoot configuration = new ConfigurationBuilder()
            //    .SetBasePath(Directory.GetCurrentDirectory())
            //    .AddJsonFile("appsettings.json")
            //    .Build();

            //string typename = configuration["messageWriter"];
            //Type type = Type.GetType(typename, throwOnError: true);

            //IMessageWriter writer = (IMessageWriter)Activator.CreateInstance(type);
            #endregion

            #region Extensibility using the decorator pattern that is enabled by using DI
            //IMessageWriter writer = new SecureMessageWriter(new ConsoleMessageWriter(), WindowsIdentity.GetCurrent());
            #endregion

            IMessageWriter writer   = new ConsoleMessageWriter();
            var            salution = new Salution(writer);
            salution.WriteMessage();
            //WriteLine("Hello World!");
        }
コード例 #5
0
ファイル: Hello_DI.cs プロジェクト: JohnPaine/learning
 /// <exception cref="ArgumentNullException"><paramref name="writer" /> is <see langword="null" />.</exception>
 public static void Test_1 () {
     IMessageWriter writer = new ConsoleMessageWriter ();
     var salutation = new Salutation (writer);
     salutation.Exclaim ();
 }
コード例 #6
0
        public void TestWriteNull()
        {
            var writer = new ConsoleMessageWriter();

            writer.Write(null);
        }
コード例 #7
0
        public void TestWrite()
        {
            var writer = new ConsoleMessageWriter();

            writer.Write("test");
        }