8

Ostatnio użyłem wzoru Injection Dependency z Autofac jako IoC Container.C# class class project project injection inset bootstrap

Zwykle używałbym go wewnątrz aplikacji core (WinForm, WCF, WPF itp.).

Obecnie uczę się tworzyć projekt biblioteki klasowej jako ramy dla moich twórców rówieśników, i staram się trzymać wzorca DI, ponieważ pozwala mi to na testowanie jednostkowe w trakcie pracy.

Jak skonfigurować kontener IoC w projekcie biblioteki klas bez punktu wejścia?

Czy mogę po prostu zrobić coś takiego:

public static void ConfigureLibrary() { 
    //.. Do bootstraping here 
} 

i niech rdzeń aplikacji nazwać kiedy uruchomić aplikację rdzeń?

W jaki sposób biblioteki takie jak wzorce & skonfigurowały bibliotekę Enterprise Library lub Spring.Net?

+0

Powiązane: http://stackoverflow.com/questions/1831455/what-are-the-best-practices-for-class-libraries-using-dependency- injection-for-i – Steven

+0

Powiązane: http: // stackoverflow .com/questions/2045904/dependency-inject-di-friendly-library – Steven

+0

Wymagane przeczytanie: http://blog.ploeh.dk/2014/05/19/di-friendly-library/ – Steven

Odpowiedz

8

Skąd takie jak biblioteki wzorców & Praktyki Przedsiębiorstwo bibliotece lub Spring.Net skonfigurowany?

Oto an interesting article od Chrisa Tavaresa na ten temat.

+0

Interesujące w rzeczy samej. Z tego, co jestem w stanie uchwycić * wybacz mi, że jestem początkującym *, nawet biblioteki takie jak EntLib wciąż wymagają od użytkownika konfiguracji używając elewacji, nawet konfiguracja jest tak prosta, jak 'InitializeMyClassLibrary()'. Czy tak jest? –

+0

AFAIK tak nie jest. EntLib ma domyślną konfigurację, której można używać w obecnej postaci. Powinna istnieć domyślna fasada. – Steven

+0

Masz na myśli coś w rodzaju statycznego punktu wejścia? –

0

Jak skonfigurować kontener IoC w projekcie biblioteki klas bez punktu wejścia?

Zasadniczo aplikacja powinna być źródłem do rejestracji usług. Ale tak, można zapewnić domyślną rejestrację w bibliotece. Here jest postiem blogu, który zrobiłem kilka dni temu, jak ja i mój zespół obecnie to robimy.