8
我在寫一篇Owin Middleware,我需要使用一些遺留代碼,它使用HttpRequestBase作爲方法參數。遺留代碼不遵循SOLID,所以不可能將其擴展爲使用OwinRequest而不是HttpRequestBase有沒有辦法將OwinRequest轉換爲HttpRequestBase?
是否存在將OwinRequest轉換爲HttpRequestBase的擴展(或方式)?
我在寫一篇Owin Middleware,我需要使用一些遺留代碼,它使用HttpRequestBase作爲方法參數。遺留代碼不遵循SOLID,所以不可能將其擴展爲使用OwinRequest而不是HttpRequestBase有沒有辦法將OwinRequest轉換爲HttpRequestBase?
是否存在將OwinRequest轉換爲HttpRequestBase的擴展(或方式)?
如果你有訪問請求的IOwinContext
,你可以用這個小黑客獲得HttpContextBase
:
HttpContextBase httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);
然後,你只想:我
HttpRequestBase httpRequest = httpContext.Request;
不擁有IOwinContext。我有意編寫不從OwinMiddleware繼承的中間件。有什麼辦法從IDictionary創建一個IOwinContext? –
Maciek
2014-10-27 16:45:07
由於OwinContext c-tor接受IDictionary參數並且可以從Owin環境輕鬆創建,因此接受此答案作爲答案。 :)謝謝Mati。 –
Maciek
2014-10-28 08:38:34