diff --git a/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs b/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs index d85c0bd..61e3a5e 100644 --- a/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs +++ b/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs @@ -8,13 +8,22 @@ namespace AspNetCoreMVC.Controllers [Route("[controller]")] // 컨트롤러 이름 자동으로 따라감 public class HomeController : Controller { - private readonly ILogger _logger; + private IEnumerable _baseLoggers; - public HomeController(ILogger logger) + public HomeController(IEnumerable loggers) { - _logger = logger; + _baseLoggers = loggers; } + //private readonly ILogger _logger; + + //public HomeController(ILogger logger) + //{ + // _logger = logger; + //} + + [Route("Index")] + [Route("/")] public IActionResult Index() { //string url = Url.Action("Privacy", "Home"); @@ -24,7 +33,25 @@ namespace AspNetCoreMVC.Controllers //return RedirectToAction("Privacy"); - return View(); + //return View(); + + //FileLogger logger = new FileLogger(new FileLogSetting("log.txt")); + //logger.Log("Log Test"); + + foreach (var logger in _baseLoggers) + { + logger.Log("DI Log Test"); + } + + return Ok(); + } + + [Route("DITest")] + public IActionResult ActionDITest([FromServices] IBaseLogger logger) + { + logger.Log("Log Test"); + + return Ok(); } public IActionResult Test() diff --git a/BlazorApp/AspNetCoreMVC/Models/Models.cs b/BlazorApp/AspNetCoreMVC/Models/Models.cs index e1c921d..c68ab12 100644 --- a/BlazorApp/AspNetCoreMVC/Models/Models.cs +++ b/BlazorApp/AspNetCoreMVC/Models/Models.cs @@ -25,4 +25,45 @@ namespace AspNetCoreMVC.Models [Display(Name = "Count")] public int Count { get; set; } } + + public class FileLogSetting + { + private string _filename; + public FileLogSetting(string filename) + { + _filename = filename; + } + } + + public class FileLogger : IBaseLogger + { + private FileLogSetting _setting; + public FileLogger(FileLogSetting settings) + { + _setting = settings; + } + + public void Log(string log) + { + Console.WriteLine($"FileLog Ok {log}"); + } + } + + public class DbLogger : IBaseLogger + { + public DbLogger() + { + + } + + public void Log(string log) + { + Console.WriteLine($"DBLog Ok {log}"); + } + } + + public interface IBaseLogger + { + void Log(string log); + } } diff --git a/BlazorApp/AspNetCoreMVC/Program.cs b/BlazorApp/AspNetCoreMVC/Program.cs index 015307a..7476218 100644 --- a/BlazorApp/AspNetCoreMVC/Program.cs +++ b/BlazorApp/AspNetCoreMVC/Program.cs @@ -1,3 +1,5 @@ +using AspNetCoreMVC.Models; + namespace AspNetCoreMVC { public class Program @@ -9,6 +11,10 @@ namespace AspNetCoreMVC // Add services to the container. builder.Services.AddControllersWithViews(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + builder.Services.AddSingleton(new FileLogSetting("log.txt")); + var app = builder.Build(); //app.UseStaticFiles();