静态对象上的扩展方法

时间:2010-12-27 15:47:31

标签: c# .net asp.net extension-methods

我知道(或者我听说)为单个独立的.net类(不是IEnumerable的实现)编写扩展方法是潜在的代码味道。但是,为了使生活更轻松,我需要将一个方法附加到asp.net中的ConfigurationManager类。它是一个静态对象,所以这不起作用:

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

     //the manager needs to be static.

}

所以问题是 - 是否可以在.net?

中为静态类编写扩展方法

2 个答案:

答案 0 :(得分:4)

不,这是不可能的。

它们被定义为看似实例方法的静态对象。

来自MSDN

  

扩展方法被定义为静态方法,但是使用实例方法语法调用。

答案 1 :(得分:1)

不,你不能。扩展方法需要一个给定类型的实例,这是静态类无法获得的。