18

私はASP.NETを学んでいて、このメソッド宣言に出くわしました:

public IQueryable<Product> GetProducts([QueryString("id")] int? categoryId) {.....}

チュートリアルではcategoryId、クエリ文字列 "id" (&id=5 などの URL から) と等しいと述べていますが、問題は[QueryString("id")]構文とは何ですか? これは ASP.NET の外部で使用できますか? また、これをどのように適用しますか?

4

1 に答える 1

19

それQueryStringAttributeは parameter に attribute を適用していますcategoryId。これは単なる属性であり、おそらくメソッドやクラスで見慣れているもののように、次のようになります。

[STAThread]
static void Main()
{
}

この場合、おそらくフレームワークの一部 (私は ASP.NET 開発者ではないため、正確に何を指摘することはできません) がリフレクションを使用してすべてのメソッドを検索QueryStringAttributeし、パラメーターに適用された値を検索してから、これらの属性内の名前をクエリ文字列内の名前と照合し、一致する値を抽出してメソッド呼び出しに渡します (再びリフレクションを使用)。

于 2013-03-28T20:47:31.210 に答える