2011-05-21 56 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

用项目替换'我的'项目特定。