我面临的问题是如何正确地从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构造函数中显式调用Organization字段的构造函数,还是有其他方法?例如使用GlobalContainer?
提前感谢。