Sens istnienia IOptions<> w ASP.NET Core, jak korzystać z settingsów w innych warstwach?

0

Jaki jest sens istnienia IOptions<> w ASP.NET Core, skoro logicznie nie powinno ich się użyć poza projektem webowym? Przykładowo chcę użyć jakiś opcji w projekcie w warstwie Business, w której nie chcę i nie powinienem mieć referencji do żadnych DLL związanych z ASP.NET itp. Zatem jak mam w jakieś klasie w tej warstwie wstrzyknąć opcje? Może czegoś nie rozumiem... ale bez referowania DLLki z definicją tego IOptions nie przejdzie, a tego nie chce...

0

IOptions nie jest związane z ASP.NET Core, to całkiem oddzielna dllka.

0

Tak, jest to dokładnie "Microsoft.Extensions.Options.dll". Czyli w waszych projektach w warstwach biznesowych/domenowych w których zapewne staracie się nie odwoływać do jakiś specjalistycznych DLL jak EntityFramework, System.Web itp. uważacie, że odwołanie do "Microsoft.Extensions.Options" jest ok?

0

Tak jak napisał to some_ONE, to nie jest związane z ASP Core więc dla czego by nie? Na upartego można schować to za abstrakcją jeśli jest koniecznie taka potrzeba.

1

Jeśli chcesz zachować czystość warstwy biznesowej/domain, to popatrz na IOptions tak samo jak na inne źródła danych, i potraktuj je tak samo. Czyli odwróceniem zależności, niech domena zdefiniuje interfejs, który zostanie zaimplementowany w warstwie zewnętrznej (infrastruktury) przez adapter który będzie miał dostęp do IOptions<>.

1 użytkowników online, w tym zalogowanych: 0, gości: 1