delphi - Spring4D中是否可以多次注册同一个类/接口(interface)?

标签 delphi spring4d

我目前正在使用 Spring4D 框架并认为它非常酷。我正在努力实现以下目标

  GlobalContainer.RegisterComponent<TPerson>.Implements<IPerson>('Normal');
  GlobalContainer.RegisterComponent<TPerson>.Implements<IPerson>('TestData').DelegateTo(
    function: TPerson
    begin
      result := TPerson.Create;
      result.SetFirstName('Bob');
      result.SetSurname('Smith');
    end
  );

TPerson/IPerson 具有明显的定义。但不管我是否尝试

  Person := ServiceLocator.GetService<IPerson>('Normal');

  Person := ServiceLocator.GetService<IPerson>('TestData');

我总是得到 Bob,这可能吗,还是我做错了什么?

最佳答案

这个在最新版的Spring4D中已经修复

关于delphi - Spring4D中是否可以多次注册同一个类/接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325788/

相关文章:

delphi - 如何从辅助类函数中获取 "helped"类?

delphi - 如何使此代码可重复使用

delphi - IOTAProjectResource 是否在 Delphi XE2(也可能是 XE3)中损坏(再次!)?

multithreading - 如何制作原子指令

delphi - 父表单如何判断非模态表单是否仍处于打开状态?

delphi - 如何在 Spring4d 中创建和使用不区分大小写的 IList<string>

java - 我如何确保给定的依赖项包含在我的 Spring 框架应用程序中?

delphi - 如何在不注册类类型的情况下使用 Spring 的 DI 容器模拟接口(interface)?

Delphi分布式构建失败

delphi - 无法在 Spring4D 中使用带有比较器的默认参数值