Wenn ich Anwendung mit Dependency-Injektionscontainer (Spring4D) erstellen, würde ich gerne wissen, ob Container korrekt aufgebaut ist. In dieser Situation:Validierung der Abhängigkeitsinjektion Container Build
GlobalContainer.RegisterType<TApp>;
GlobalContainer.RegisterType<TMyForm>;
GlobalContainer.Build;
Wenn TMyForm von Vcl.Forms.TForm erbt dann Container aufgebaut, aber Anwendung wird in der Tat nicht, weil Arbeit TMyForm ist nicht registriert. Ich würde gerne wissen, ob es eine Möglichkeit gibt, den Build-Prozess zu validieren. Vor allem löst Resolver den Konstruktor, den ich denke, sollte es nicht der Standardkonstruktor?
habe ich versucht, so etwas wie die:
var
registeredTypes: Spring.Collections.IEnumerable<TComponentModel>;
registeredType: TComponentModel;
begin
GlobalContainer.RegisterType<TApp>;
GlobalContainer.RegisterType<TMyForm>;
GlobalContainer.Build;
registeredTypes := GlobalContainer.Kernel.Registry.FindAll;
for registeredType in registeredTypes do
begin
if not GlobalContainer.Kernel.Registry.HasService(registeredType.ComponentTypeInfo) then
raise Exception.Create('Build Error');
end;
Aber das ist bei weitem nicht ideal.