Можно ли создавать методы расширения с помощью 2.0 Framework?

Мне было интересно, есть ли способ создавать методы расширения с использованием Visual Studio 2005 и 2.0 framework?

public static class StringExtensions
{
    public static void SomeExtension(this String targetString)
    {

    }
}

Если нет способа сделать это, каков будет эквивалент? Просто создайте статические методы в каком-то классе библиотеки?

Ответ 1

может создавать методы расширения с использованием .Net framework 2.0, если вы используете компилятор С# 3.0 и Visual Studio 2008 и выше.

Уловка заключается в том, что вы должны добавить этот код в свой проект:

 namespace System.Runtime.CompilerServices
{
  public class ExtensionAttribute : Attribute { }
}

В основном вам нужно повторно объявить ExtensionAttribute в Core.dll(.Net 3.5 +) в вашем проекте.

Ответ 2

Нет, это невозможно в .Net 2.0 (без использования компилятора С# 3.0). Вы можете просто создавать статические методы, которые делают точно одно и то же:

public static class StringExtensions
{
    public static void SomeExtension(String targetString)
    {
        // Do things
    }
}

// Example use:
StringExtensions.SomeExtension(targetString);

В действительности методы расширения - это просто сокращенный способ написания выше.