Delphi Spring DI: Czy możliwe jest delegowanie instancji interfejsu bez typu implementacji?

Właśnie zaczynam pracę z Delphi Spring Framework i zastanawiałem się, czy obecna wersja kontenera DI w jakiś sposób pozwala na delegowanie konstrukcji do metody fabrycznej bez określania typu implementacji?

Na przykład. coś podobnego do tego:

GlobalContainer
  .RegisterFactory<ISomeObject>(
    function: ISomeObject 
    begin 
      Result := CreateComObject(CLASS_SomeObject) as ISomeObject; 
    end)
  .Implements<ISomeObject>  // could probably be implied from the above
  .AsSingletonPerThread;

Jak widać, moim konkretnym przypadkiem użycia jest instancja obiektów COM. W takim przypadku klasa implementująca interfejs, który mnie interesuje, nie jest częścią mojej aplikacji, ale nadal mogę tworzyć instancje, dzwoniącCreateComObject / CoCreateInstance. Jednak wydaje mi się, że nie mam szczęścia, ponieważ rejestracje w kontenerze zawsze wydają się być związane z rzeczywistą klasą wykonawczą.

Zakładając, że w tej chwili nie jest to możliwe, w jaki sposób eksperci mogliby to rozwiązać? Czy utworzysz klasę wrappera lub fikcyjną klasę, czy też po prostu utrzymasz obiekty COM z kontenera DI i po prostu utworzymy je za pomocąCreateComObject?

questionAnswers(2)

yourAnswerToTheQuestion