0

私は Web フレームワークを書いていますが、1 つの優れた機能 (IMO) は、関数の Web アドレスを次のようにインラインで定義できることです。

[Url(@"/profile:(?<username>\w+)")]
public void Profile(string username)

そして、その関数はアクセス時に自動的に呼び出さ/profile:someusernamesomeusername、関数に渡されて自動的に型キャストされます。

しかし、古いやり方が好きな人のために、すべてのルートを 1 か所で指定することもできます:

List<Route> Routes = new List<Route> {
    new Route(@"/user:(?<id>\d+)", "UserController.View")
};

今、私は 2 つの異なるメソッドを処理する順序を決定しようとしています。

OOH、グローバルルートを最初に置くということは、インラインルートが奪われる前にすべての特別なケースを前もって処理できることを意味しますが、OTOH、グローバルルートを前に置くと、そこにすべてのフォールバックルートを置くことはできません. ですので、どの順番がいいのか一概には言えません...

私が推測するもう1つの解決策は、優先キューを使用することであり、ユーザーは特定のルートに高い優先度または低い優先度を与えることができます.

4

1 に答える 1

2

私の意見では、より具体的なルートは、より具体的な動作を指定するという理由だけで、一般的なルートよりも優先されるべきです。

グローバル定義から特定のルートを削除し、それを混乱させないので、私はこの機能が好きです. .

于 2011-01-02T01:06:26.927 に答える