Методы расширения для статического объекта - PullRequest
1 голос
/ 27 декабря 2010

Я знаю (или я так слышу), что написание методов расширения для отдельного отдельного класса .net (не реализация IEnumerable) является потенциальным запахом кода. Однако, чтобы упростить жизнь, мне нужно прикрепить метод к классу ConfigurationManager в asp.net. Это статический объект, поэтому он не будет работать:

public static List<string> GetSupportedDomains(this ConfigurationManager manager) 
{

     //the manager needs to be static.

}

Таким образом, вопрос - возможно ли написать метод расширения для статического класса в .net?

Ответы [ 2 ]

4 голосов
/ 27 декабря 2010

Нет, это невозможно.

Они определены как статические объекты, которые выглядят как экземпляр методы.

С MSDN :

Методы расширения определены как статические методы, но вызываются с использованием синтаксиса метода экземпляра.

1 голос
/ 27 декабря 2010

Нет, вы не можете. Методы расширения требуют экземпляр заданного типа, который вы не можете получить из статического класса.

...