Správné použítí DI   otázka

C#

Ahoj, dělám si aplikace v .net mvc a mám jeden problém. Ve svém projektu mám následující kód:

public partial class LogService : ILogService
{
    private readonly DBContext _con = new DBContext();

    public void LogNew(Log log)
    {
        _con.Logs.Add(log);
        _con.SaveChanges();
    }
}

public partial interface ILogService
{
    void LogNew(Log log);
}

Tuto službu použiji v následujícím kódu:

public class DBLogger
    {
        private static readonly ILogService _logService = new LogService();

        public override void Write(string name, string description,)
        {
            var log = new Log()
            {
                                Name = name,
                Description = description
            };
            _logService.LogNew(log);
        }
    }
}

Službu mám samozřejmě registrovanou. Následující třídu chci použít v jiné třídě. Nyní to funguje bez problémů, ale mám pocit, že tady nepoužívám DI že?A pokud bych to použil jak se má což znamená vytvořit následující kód:

private readonly ILogService _logService;

 public DBLogger(ILogService logService)
 {
     _logService = logService;
 }

Tady je problém, že nevím jak vytvořit objekt té třídy DBLogger. Samozřejmě můžu new DbLogger(new LogService). Předem všem strašně moc děkuji za pomoc. :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback