2013-05-15 64 views
1

有沒有一種方法可以使用ninject的常規綁定來綁定自我和所有接口。上述傳統綁定到自己和所有接口Ninject

_container.Bind(x => x.From(_assemblyList) 
         .SelectAllClasses() 
         .BindAllInterfaces()); 

的代碼做了所有的接口,但我似乎無法找到一種方法也結合自己在同一個語句。

+1

IIRC除非關閉使用NinjectSettings覆蓋的隱式自我綁定,否則自動綁定就會生成(這很醜陋,AutoFac也不會進入這個混亂中......)。 IOW會對您造成問題(我可能會誤解,但我認爲它不應該是必需的)。 'BindToSelf'只是作爲一種說法'不要在此綁定任何接口'的方式。 ......如果有這種情況出現,維基可以通過編輯來做到這一點,因爲這樣做可以更加明確 - 或者如果情況屬實,xmldocs的知識產權機構知道該怎麼做! –

+0

不是,它實際上是我想要做的,我們在我們的應用程序中有一些較舊的服務(我們正在引導ninject),需要綁定到自己。如果它自動綁定到自我,那麼一切都很好,我會做一個快速測試並回來確認。 – McDonnellDean

+0

@RubenBartelink您是否想將您的評論作爲答案接受綠色標記?你是對的,因爲它是隱含的。 – McDonnellDean

回答

2

除非你明確 關閉 存根隱自我約束 (通過提供 NinjectSettings覆蓋) 所討論in this answer by me from 2 years back I'd forgotten about,都對飛通過Ninject的需要產生的自我綁定出現[這是醜陋和AutoFac沒有按」不會陷入這個混亂的局面......另外它導致了一些實現混亂和測試用例,但據我所知Ninject的用戶並沒有問題]。

BindToSelf()擴展方法與正常的Bind鏈中的ToSelf對稱,即它可以讓你說'無論 - 我要去重要的位...',然後覆蓋例如範圍界定。