型付きインターフェースと Spring4D を使用しようとしていますが、解決に問題があります。以下の詳細を確認してください。
DB オブジェクト:
unit u_DB;
type
TDBObject = class
public
property ID: TGUID;
end;
TDBCRM = class(TDBObject)
public
property SOME_FIELD: TSomeType;
end;
宣言:
unit i_BaseDAL;
type
{$M+}
IBaseDAL<T: TDBObject, constructor> = interface
['{56D48844-BD7F-4FF8-A4AE-30DA1A82AD67}']
procedure RefreshData();
....
end;
unit u_BaseDAL;
type
TBaseDAL<T: TDBObject, constructor> = class(TInterfacedObject, IBaseDAL<TDBObject>)
public
procedure RefreshData();
....
end;
その後、ベースの IBaseDAL と IBaseDAL を登録できました
GlobalContainer.RegisterType<IBaseDAL<TDBObject>>;
GlobalContainer.RegisterType<IBaseDAL<TDBCRM>>;
プロジェクトでの使用:
今すぐ IBaseDAL を解決する必要がありますが、解決方法が見つかりませんでした。醜いアプローチ作業の下のみ
DM := GlobalContainer.Resolve('i_BaseDAL.IBaseDAL<u_DB.TDBObject>@TBaseDAL<u_DBCRM.TDBCRM>').AsInterface as IBaseDAL<TDBObject>;
しかし、私は以下がうまくいくことを望んでいました:) -
DM := GlobalContainer.Resolve(IBaseDAL<TDBCRM>);
どうすれば正しく解決できるか教えてください。