2011-05-21 33 views
0

我遇到了an article,它描述瞭如何爲LINQ(一個la jQuery)創建.Each()。我將代碼粘貼在我的控制器中,但是當我嘗試調用它時,Intellisense沒有看到它......我還閱讀了一篇文章4guysFromRolla,它描述瞭如何創建LINQ擴展,但他們沒有談論必須放置代碼在任何特殊的地方...擴展linq(放置代碼的地方)

這裏有什麼魔法?

+0

你可以在MVC應用程序中顯示代碼片段 – Stecya 2011-05-21 19:34:33

回答

2

擴展方法應該是非嵌套的,非通用靜態類的內部定義:Extension Methods

+0

,有沒有一個首選位置來放置此代碼?它似乎不適合任何/ Models,/ Controllers或/ Views – ekkis 2011-05-21 19:55:32

+2

@ekkis - 理想情況下它應該轉到一個單獨的項目(assemlby),它具有所有不依賴於您的網站的實用程序類。 – 2011-05-21 20:00:53

3

Extension methods屬於單獨的靜態類。

從鏈接的文章:

下面的示例示出了用於System.String類定義的擴展方法。請注意,這是一個非嵌套,非通用靜態類中定義:

您還應該添加using這一類的命名空間。

1

你可以在任何地方放置它,但它會是明智的,它移動到一個單獨的工具文件夾+納秒或甚至一個組件。

基本思路:在\MyExtensions文件夾中創建一個public static class MyLinqExtensions

用項目替換'我的'項目特定。