給定一個型別和注冊
TTest = class
public
constructor Create(First, Second: IO; Other: TOther);
end;
GlobalContainer.RegisterType<TOther,TOther>;
GlobalContainer.RegisterType<IO,TO1>.AsDefault;
GlobalContainer.RegisterType<IO,TO2>('Second');
因為我想覆寫第二個引數,所以我必須
GlobalContainer.RegisterType<TTest>.InjectConstructor([nil,'Second',nil]);
我只想覆寫第二個引數。我知道對于引數放置,我還必須指定第一個引數,但是當我添加越來越多的建構式引數時,我必須記住要回傳并修改注冊。
會更容易
GlobalContainer.RegisterType<TTest>.InjectConstructor([nil,'Second']);
而不是
GlobalContainer.RegisterType<TTest>.InjectConstructor([nil,'Second',nil,nil,nil,nil]);
當我添加進一步的依賴項時,肯定可以暗示 nil 。
uj5u.com熱心網友回復:
目前這通過注冊 API 是不可能的,但我在我想要在某個時候實作的事情串列中有這個。我的想法是讓它與autofac的做法非常相似——雖然我很害怕,但沒有 eta。
但是,您可以在建構式[Inject('second')]的Second引數上放置一個TTest來實作這一點(請記住放入Spring.Container.Commonuses 以使屬性起作用)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/474105.html
