Расширения Методы хитры в том, что они не выбираются автоматически после того, как вы их напишите. Вам нужно либо добавить директиву using, либо добавить ссылку, а затем директиву using в зависимости от того, куда вы добавили метод расширения.
Это потому, что методы расширения добавляют к классу, но не традиционным способом, скажем, частичным классом. Вы расширяете класс, однако они на самом деле не являются объектно-ориентированными, так что они требуют больше работы с вашей стороны, прежде чем вы сможете их использовать, пока что запутались?
Следующее должно помочь:
using System.Linq.IQueryable
лично я бы разделил их на Пространство имен, называемое "ExtensionMethods", а затем разделил бы их на другие Пространства имен в зависимости от цели, это поможет вашему здравомыслию.
Нет ограничения на количество пространств имен, которые вы можете вкладывать, но есть ограничение на количество статических классов, которые вы можете вкладывать.
А в коде, который его вызывает, после того, как вы наберете точку, вы должны увидеть ее в списке автозаполнения.
Я опубликую пример, если вам нужна дополнительная помощь.
Пример:
Extensions.cs
using System;
namespace Foo
{
namespace Bar
{
public static class RangeExtensions
{
public static string ToColumnLetter(this int col)
{
... //universal notation for magic :)
}
}
}
}
Usage.cs
using System;
using Foo.Bar;
namespace Foo2
{
public class Bar2
{
public void ExtensionSample
{
Range range = ....
Console.WriteLine(range.Column.ToColumnLetter());
}
}
}
Ура!