我面临从 Spring4D 框架容器解析的类型正确实例化对象的问题。
我有一堂课:
type
TSurvey = class ( TInterfacedObject, ISurvey )
private
_id : Integer;
_organization : IOrganization;
function GetId () : Integer;
procedure SetId ( const value : Integer );
function GetOrganization () : IOrganization;
procedure SetOrganization ( const value : IOrganization);
public
property Id : Integer read GetId write SetId;
property Organization: IOrganization read GetOrganization write SetOrganization;
end;
...
initialization
GlobalContainer.RegisterType<TSurvey>.Implements<ISurvey>.InjectField ( '_organization' );
...
我使用 GlobalContainer 来实例化一个对象:
survey := GlobalContainer.Resolve<ISurvey>;
survey.Organization.Id := 5;
一切都很好,并且运行良好。
现在我想为 TSurvey 创建一个后代类:
type
TFieldSurvey = class ( TSurvey )
...
end;
问题是如何正确实例化 TFieldSurvey 类的对象?
如果我使用 Create(),那么我会得到一个异常:
fieldSurvey := TFieldSurvey.Create ();
fieldSurvey.Organization.Id := 5 <- exception is here
我是否必须在 TFieldSurvey 构造函数中显式调用组织字段的构造函数,还是有另一种方法?例如,使用 GlobalContainer?
提前致谢。