我有以下项目:
MyForm 单元(只是空表):
unit uMyForm;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs;
type
TMyForm = class(TForm)
end;
implementation
{$R *.fmx}
end.
应用单元:
unit App;
interface
uses
uMyForm,
Spring.Container;
type
TApp = class
private
_myForm: TMyForm;
public
[Inject]
constructor Create(myForm: TMyForm);
end;
implementation
uses
System.SysUtils;
{ TApp }
constructor TApp.Create(myForm: TMyForm);
begin
_myForm := myForm;
end;
end.
并构建代码:
procedure BuildProject;
begin
GlobalContainer.RegisterType<TApp>;
GlobalContainer.RegisterType<TMyForm>;
GlobalContainer.Build;
_app := GlobalContainer.Resolve<TApp>;
end;
运行 BuildProject() 导致错误:“无法解析类型:TMyForm”。我在 VCL 平台上测试了相同的配置,一切正常。你知道这里有什么问题吗?
Edit1:我不得不更改问题描述,因为我错误地认为问题发生在两个(VCL 和 FMX)平台上。@RudyVelthuis 的评论告诉我,问题只出在 FMX 平台上。