可以註冊一個類,該類具有從創建點傳遞的參數?delphi - 如何將參數從實例化器傳遞給spring4d依賴注入框架中的構造函數?
我知道這是可以做到這樣的事:
GlobalContainer.RegisterType<TUserProcessor>.Implements<IUserUpgrader>.
AsTransient.DelegateTo(
function: TUserProcessor
begin
Result := TUserProcessor.Create(GetCurrentUser);
end
);
但這些參數綁定到未在對象中獲取的intantiated其中容器被登記的執行上下文和。
這樣的事情是可能的例如?
GlobalContainer.Resolve<IMathService>([FCurrentUser]);
我知道有些peoble主張有非常簡單的構造,但也有當一個構造函數的參數看起來顯然是要走的路時間:
構造的對象需要對象參數工作,所以參考必須得到滿足。該參數也使得這個約束更加明顯地看着這個類。
如果您嘗試在不首先進行賦值的情況下使用對象,則可以在方法或屬性中分配引用,並在其他方法中引發和異常。我不喜歡編寫這種類型的代碼,它只是一個簡單的浪費時間,只需使用構造函數參數並在那裏檢查。更少的代碼,更好的海事組織。
此外,對象被傳遞給使用容器構造新對象的對象(例如一個Transaction對象)並且具有某種狀態(它不是我可以通過容器獲得的新對象)。
我不知道'TContainer.Resolve'的接受在Spring4D數組參數的重載的。我想念什麼? –
menjaraz
2012-03-31 05:10:42
@menjaraz這是隻是和想法,它可以如何實現(肯定它可以與RTTI donde) – 2012-03-31 22:56:42
好吧,這聽起來像一個功能請求。爲什麼不把它發佈到[spring4d Google Group](http://groups.google.com/group/spring4d)? – menjaraz 2012-04-01 06:17:29