2010-12-27 36 views
1

スタンドアロンの.netクラス(IEnumerableの実装ではない)の拡張メソッドの記述は潜在的なコードの匂いであることは知っています。しかし、生活を楽にするために、asp.netのConfigurationManagerクラスにメソッドをアタッチする必要があります。 - それは、.NETに静的クラスの拡張メソッドを記述することが可能であるスタティックオブジェクトの拡張メソッド

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

    //the manager needs to be static. 

} 

をそこで質問です:それはので、これは動作しません静的オブジェクトですか?

+0

可能な複製:http://stackoverflow.com/questions/2004416/extension-methods-on-a-static-class –

+0

可能な複製:http://stackoverflow.com/questions/249222/can-i-add -extension-methods-to-an-existing-static-class – Oded

答えて

4

いいえ、できません。

これらは、インスタンスのように見える静的オブジェクトとして定義されています。 MSDNから

拡張メソッドは、静的メソッドとして定義されるが、インスタンスメソッド構文を使用して呼び出されます。

1

いいえできません。拡張メソッドは、指定された型のインスタンスを必要とします。これは静的クラスからは取得できません。