Bläddra i källkod

[Ioc] some improvements

Exilon 5 år sedan
förälder
incheckning
a9fa5a8fc3
1 ändrade filer med 8 tillägg och 2 borttagningar
  1. 8 2
      Quick.IOC.pas

+ 8 - 2
Quick.IOC.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.0
   Created     : 19/10/2019
-  Modified    : 08/02/2020
+  Modified    : 03/03/2020
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -171,7 +171,8 @@ type
     function RegisterOptions<T : TOptions>(aOptions : TOptions) : TIocRegistration<T>;
     function Resolve<T>(const aName : string = ''): T; overload;
     function Resolve(aServiceType: PTypeInfo; const aName : string = ''): TValue; overload;
-    function AbstractFactory<T : class, constructor>(aClass : TClass) : T;
+    function AbstractFactory<T : class, constructor>(aClass : TClass) : T; overload;
+    function AbstractFactory<T : class, constructor> : T; overload;
   end;
 
   EIocRegisterError = class(Exception);
@@ -245,6 +246,11 @@ begin
   Result := fResolver.CreateInstance(aClass).AsType<T>;
 end;
 
+function TIocContainer.AbstractFactory<T> : T;
+begin
+  Result := fResolver.CreateInstance(TClass(T)).AsType<T>;
+end;
+
 constructor TIocContainer.Create;
 begin
   fLogger := nil;