AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spring4D DI-Container Exception

Ein Thema von TurboMagic · begonnen am 17. Mär 2021 · letzter Beitrag vom 19. Mär 2021
 
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.022 Beiträge
 
Delphi 12 Athens
 
#1

Spring4D DI-Container Exception

  Alt 17. Mär 2021, 16:29
Hallo,

ich versuche gerade mittels Nick Hodge's "Coding in Delphi" Buch den DI-Container von Spring4D
für mein DLL Projekt zu nutzen, allerdings noch ohne Erfolg.

Ich habe die Situation in der es mehrere Layer gibt. Jeder Layer ist eine Klasse mit einem in
einer extra Unit befindlichen Interface. Jeder der Konstruktoren bekommt eine Interface Referenz
der schichtenmäßig darunter liegenden Klasse, kennt also nur das Interface, nicht die konkrete
implementierung.

In jeder konkreten Implementierungsunit habe ich im Implementation Teil Code wie diesen:

GlobalContainer.RegisterType<TMyLayer1>.Implements<IMyLayer1>('layer1').InjectConstructor(['Layer2']); In der DPR habe ich alle die konkreten implementierungs Units und alle Interface Units drin und das
hier im Uses:

Delphi-Quellcode:
Spring.Container,
Spring.Services,
Spring.Collections
und in implementation:

GlobalContainer.Build; Mit dem Debugger kann ich nachweisen, dass beim Laden der DLL alle diese RegisterType Aufrufe und
der Build Aufruf ausgeführt werden.

In einer function die aus der DLL exportiert wird und von einem Testprogramm aufgerufen wird
versuche ich dann das hier:

Delphi-Quellcode:
function MyDoIt:Boolean;
var
  Layer1: IMyLayer1;
begin
  Layer1 := ServiceLocator.GetService<TMyLayer1>;
Was kommt ist diese Exception:
Fehler in MyDoIt: Cannot resolve type: TMyLayer1

Die kommt auch wenn ich GetService<IMyLayer1> aufrufe.
Woran liegt das?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz