1
我有一段我想提取到自定義中間件的ASP.NET Core代碼。具體來說,應執行以下邏輯:當請求某個路徑mapPath
時,將該請求代理到另一個主機,由proxyUrl
標識。調用其他中間件的中間件
下面的代碼在Startup.cs
的伎倆:
var proxyUri = new Uri(proxyUrl);
builder.Map(
mapPath,
appMapped =>
{
appMapped.RunProxy(
new ProxyOptions
{
Scheme = proxyUri.Scheme,
Host = proxyUri.Host,
Port = proxyUri.Port.ToString()
});
}
);
好吧,它採用app.Map()
分支,然後將代理中間件代理請求。
(How)是否可以將此邏輯提取到自定義和可重用的中間件?或者我不能在這裏使用「真正的」中間件?我所能做的當然是寫一個擴展方法,例如app.UseMapProxy()
,並將邏輯1:1放在那裏,但我只是想知道我是否也可以用「真正」的中間件類來完成它。
好的,這就是我說'app.UseMapProxy()'方法時的意思 - 它只是一個擴展。我只是想知道它應該是一個「真正的」中間件。感謝您指出了這一點。 – Matthias
還有一個問題:我將如何實現一個添加了真正的每個請求功能的組件,但也想使用其他中間件?將每個請求的東西提取到一個自定義的中間件中,並用IApplicationBuilder擴展中的其他中間件進行組合? – Matthias
是的,這應該工作。 – Tratcher