我嘗試做以下引導:如何在StructureMap的ObjectFactory.Initialize調用中使用命名實例?
x.For(Of IErrorLogger).Use(Of ErrorLogger.SQLErrorLogger)().
Ctor(Of IErrorLogger)("backupErrorLogger").Is(ObjectFactory.GetNamedInstance(Of IErrorLogger)("Disk"))
x.For(Of IErrorLogger).Add(
Function()
Return New ErrorLogger.DiskErrorLogger(
CreateErrorFileName(ServerMapPath(GetAppSetting("ErrorLogFolder"))))
End Function).Named("Disk")
但它顯示了這個錯誤:
StructureMap異常代碼:200 無法找到名爲「磁盤」爲PluginType Logging.IErrorLogger
一個實例我有點理解爲什麼會發生這種情況..問題是,我如何利用註冊表中的命名實例?也許像SQLErrorLogger的ctor參數的延遲初始化一樣?我不知道如何讓它發生。
在此先感謝您提供的任何幫助。
我相信你的意思是使用上下文。「實例」,而不是。這在我的問題中不會出於同樣的原因。我提供了一個簡短的解釋我的答案。 – SamVanity
我從一個C#spike翻譯了我,並且完美地工作。什麼不適合這個?你得到200嗎?查看我編輯的代碼,我嘗試並開始工作。 – PHeiberg