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(); }
public static void Main() { IMessageWriter writer = new ConsoleMessageWriter(); var salution = new Salutation(writer); salution.Exclaim(); }
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!!!!!"); }
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!"); }
/// <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 (); }
public void TestWriteNull() { var writer = new ConsoleMessageWriter(); writer.Write(null); }
public void TestWrite() { var writer = new ConsoleMessageWriter(); writer.Write("test"); }