Mega Code Archive

 
Categories / C# / Language Basics
 

Loading Assemblies

/* A Programmer's Introduction to C# (Second Edition) by Eric Gunnerson Publisher: Apress  L.P. ISBN: 1-893115-62-3 */ // 30 - Execution-Time Code Generation\Loading Assemblies\Making it Dynamic // copyright 2000 Eric Gunnerson // file=LogAddInToFile.cs // compile with: csc /r:..\logdriver.dll /target:library logaddintofile.cs using System; using System.Collections; using System.IO; public class LogAddInToFile: ILogger {     StreamWriter streamWriter;          public LogAddInToFile()     {         streamWriter = File.CreateText(@"logger.log");         streamWriter.AutoFlush = true;     }          public void Log(string message)     {         streamWriter.WriteLine(message);     } } //============================================================= // 30 - Execution-Time Code Generation\Loading Assemblies // copyright 2000 Eric Gunnerson // file=LogDriver.cs // compile with: csc /target:library LogDriver.cs using System; using System.Collections; public interface ILogger {     void Log(string message); } public class LogDriver {     ArrayList loggers = new ArrayList();          public LogDriver()     {     }          public void AddLogger(ILogger logger)     {         loggers.Add(logger);     }          public void Log(string message)      {         foreach (ILogger logger in loggers)         {             logger.Log(message);         }     } } public class LogConsole: ILogger {     public void Log(string message)     {         Console.WriteLine(message);     } }