Loading Assemblies: Making it Dynamic
/* 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); } }
1. | File to be used as a library assembly | ||
2. | File to be used as a library assembly 2 | ||
3. | Creates a library assembly | ||
4. | Calling Native DLL Functions |