我遇到了an article,它描述瞭如何爲LINQ(一個la jQuery)創建.Each()。我將代碼粘貼在我的控制器中,但是當我嘗試調用它時,Intellisense沒有看到它......我還閱讀了一篇文章4guysFromRolla,它描述瞭如何創建LINQ擴展,但他們沒有談論必須放置代碼在任何特殊的地方...擴展linq(放置代碼的地方)
這裏有什麼魔法?
我遇到了an article,它描述瞭如何爲LINQ(一個la jQuery)創建.Each()。我將代碼粘貼在我的控制器中,但是當我嘗試調用它時,Intellisense沒有看到它......我還閱讀了一篇文章4guysFromRolla,它描述瞭如何創建LINQ擴展,但他們沒有談論必須放置代碼在任何特殊的地方...擴展linq(放置代碼的地方)
這裏有什麼魔法?
擴展方法應該是非嵌套的,非通用靜態類的內部定義:Extension Methods
,有沒有一個首選位置來放置此代碼?它似乎不適合任何/ Models,/ Controllers或/ Views – ekkis 2011-05-21 19:55:32
@ekkis - 理想情況下它應該轉到一個單獨的項目(assemlby),它具有所有不依賴於您的網站的實用程序類。 – 2011-05-21 20:00:53
Extension methods屬於單獨的靜態類。
從鏈接的文章:
下面的示例示出了用於System.String類定義的擴展方法。請注意,這是一個非嵌套,非通用靜態類中定義:
您還應該添加using
這一類的命名空間。
你可以在任何地方放置它,但它會是明智的,它移動到一個單獨的工具文件夾+納秒或甚至一個組件。
基本思路:在\MyExtensions
文件夾中創建一個public static class MyLinqExtensions
。
用項目替換'我的'項目特定。
你可以在MVC應用程序中顯示代碼片段 – Stecya 2011-05-21 19:34:33