依存性注入コンテナ(Spring4D)を使用してアプリケーションをビルドするとき、コンテナが正しく構築されているかどうかを知りたいと思います。このような状況で:TMyFormはVcl.Forms.TFormから継承する場合依存性注入コンテナビルドのバリデーション
GlobalContainer.RegisterType<TApp>;
GlobalContainer.RegisterType<TMyForm>;
GlobalContainer.Build;
、コンテナが構築されますが、アプリケーションがあるためTMyFormが全く登録されていない実際には動作しません。ビルドプロセスを検証する可能性があるかどうかを知りたい。特にリゾルバは、デフォルトのものではなく、私が考えるべきコンストラクタを解決しますか?
私はそのような何か試してみました:
var
registeredTypes: Spring.Collections.IEnumerable<TComponentModel>;
registeredType: TComponentModel;
begin
GlobalContainer.RegisterType<TApp>;
GlobalContainer.RegisterType<TMyForm>;
GlobalContainer.Build;
registeredTypes := GlobalContainer.Kernel.Registry.FindAll;
for registeredType in registeredTypes do
begin
if not GlobalContainer.Kernel.Registry.HasService(registeredType.ComponentTypeInfo) then
raise Exception.Create('Build Error');
end;
をしかし、これは理想からかけ離れています。