我正在使用Autofac,並且我不是IoC主設備。註冊在單個實例上有明確實現的多個接口
考慮這種情況:
public interface IBeforeRequestTask
{
void Execute();
}
public interface IAfterRequestTask
{
void Execute();
}
public class TaskExecutor : IBeforeRequestTask, IAfterRequestTask
{
void IBeforeRequestTask.Execute()
{
// code
}
void IAfterRequestTask.Execute()
{
// code
}
}
因此,我們有明確的實現。 你將如何註冊這些接口?
我認爲,我們不能做到這一點:
builder.RegisterType<IBeforeRequestTask> ...
builder.RegisterType<IAfterRequestTask> ...
我在Autofac Registration Docs,我們必須註冊具體類型讀取。
類似的問題,但沒有治療Autofac是這個:TinyIoC: Register multiple interfaces on a single instance
嗯,我知道,這可能是做1-1輕鬆(每級一個接口,那麼你註冊的具體類型)。但現在我很好奇它。
不記得在那裏我看到像使用StructureMap下面的代碼(可以是錯誤的):
action.AddTypesOf<IBeforeRequestTask>();
action.AddTypesOf<IAfterRequestTask>();
希望我自己清楚。謝謝你們。
編輯
我創建this樣的幫助。 ;-)
我真的不明白這個問題。無論成員是以實際類型隱式還是顯式實現,使用接口訪問成員的方式都是相同的。您是否觀察到了差異,或者這是一種主動的「讓我們在開始做這件事之前弄清楚這個問題」的問題類型? –
請參閱[「應該在其標題中包含」標籤「?」](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共識是「不,他們不應該」! –
謝謝@AndreasNiedermair ... :-) - 幹得好。我學到了。 +1教導正確的方式提問(我只讀了當我輸入問題時出現的內容,類似的問題等等)。 –