Wpis z mikrobloga

Mam sobie classLibrary projekt i w nim korzystam z innego klass library który jest sobie podłączony do systemu ERP i korzysta z jego bibliotek. Chce wyciągnać sobie servis Locatorem. Locator.GetService() i za kazdym razem pokazuje mi błąd :
The service of type 'Nazwa service' has not been registered. a service istnieje , wszedzie są dodane rejerencje itd. O co moze chodzic bo głowie sie z tym juz za długo
#programowanie #csharp #programista15k
  • 5
  • Odpowiedz
@Kamilex97: To oznacza, że w composition roocie albo gdzie tam rejestrujesz typy do DI, nie zarejestrowałeś danego typu. Czego używasz do lokacji serwisów? Jakiegoś kontenera DI? I czemu w sumie używasz dosyć znanego antywzorca w 2019?
  • Odpowiedz
@Czesiowcy: Lokator jest wbudowany z tych bibliotek systemu ERP i jest z góry nałożone żeby tego tak użyć. W tym problem że on jest tam zarejestrowany. Jak normalni wpisze jego nazwe i dam alt enter to w podpowiedziach jest co mam zaimportowac zeby go uzywac a potem jak to importuje to jest jako nie uzywany using
  • Odpowiedz
@Kamilex97: Typ, który chcesz wyciągnąć, również jest z zewnętrznej biblioteki? Jeśli Lokator ma dostęp do całej kolekcji zarejestrowanych typów pod spodem, to może ma metodę w stylu RegisterType albo RegisterService. Jeśli nie, to jesteś w dupie.
  • Odpowiedz
@Kamilex97: Można się tylko domyślać z czym masz problem, więc... to nie ma znaczenia, że ty ten typ widzisz, że są dodane referencje itp. Locator.GetService() to jest tylko jakiś fragment kodu, który coś robi z typem podanym jako "nazwa". Najprawdopodobniej (jak w większości DI itp.) musisz gdzieś zarejestrować ten typ w tym Locatorze tak jak @Czesiowcy pisze - szukaj gdzieś w kodzie metod RegisterType lub czegoś podobnego. Znajdź sobie inne wystąpienia
  • Odpowiedz