在調查實施我自己IControllerFactory
我看着默認實現DefaultControllerFactory
,驚訝地看到被設置在CreateController(...)
方法RequestContext
屬性,然後在GetControllerInstance(...)
被引用和GetControllerType(...)
方法。疑惑的ASP.NET MVC DefaultControllerFactory.cs實施
令我驚訝的原因是,由於工廠在應用程序啓動時實例化,所有請求都使用相同的實例,所以如果同時收到多個請求,則不能保證已設置了哪些請求RequestContext
當你來使用它的時候,你可以去財產。
是否有在MVC框架保證只有一個請求將由註冊IControllerFactory
在同一時間提供服務?
如果我失去了一些東西在這裏,請賜教,爲我的控制器的implementaiton會更簡單,如果我有方法之間狀態的請求生命週期中調用。
謝謝。
編輯:
給出的答案是如我所料,但錯過了問題的要點。事實上,作爲MVC框架的一部分提供的DefautlControllerFactory正在存儲RequestContext,就好像它具有狀態一樣 - 查看源代碼。
我認爲這是錯誤的,我期待澄清(我想我已經看到,因爲兩者的答案跟我的想法一致)。我已經發布到ASP.NET MVC論壇。
我不明白你的觀點。你能給個例子嗎? – Paco 2009-04-24 21:48:46