2017-01-30 4 views
0

HtmlHelperの拡張メソッドを記述したいとします。私はそれをとても簡単に行うことができます。拡張メソッドを別のメソッドの内部にネストすることはできますか?

public static string Capitalize(this HtmlHelper helper, string theString) 
{ 
    return theString.toUpper(); 
} 

Html.Capitalize("some stuff")と呼んでください。

特定のタイプのメソッドがたくさんある場合、それらをまとめてグループ化したいのですが?たとえば、私たちのCapitalize機能を使用して、多分私はHtml.StringUtilsのものにしたいので、私はこのような様々な関連のメソッドを呼び出すことができます:

Html.StringUtils.Capitalize("some stuff")
Html.StringUtils.WordsToArray("some stuff")
Html.StringUtils.Reverse("some stuff")
...

を簡単な方法はありますそれをするには?私はHtmlHelperをパラメータとする独自の関数としてStringUtils.Capitalize()を実行しなければならない状況を回避しようとしています。

答えて

2

これを直接行う方法はありません。拡張のプロパティーがサポートされていれば、それは動作するかもしれませんが、拡張メソッドがHtmlHelperのため、メソッド名はHtmlHelper参照(この場合はHtmlプロパティ)の直後に来なければなりません。あなたはグループの名前空間および/またはクラスのメソッドそのものができ

注:

public static class StringUtils 
{ 
    public static string Capitalize(this HtmlHelper helper, string theString) 
    { ... 
    } 
    public static string WordsToArray(this HtmlHelper helper, string theString) 
    { ... 
    } 
    public static string Reverse(this HtmlHelper helper, string theString) 
    { ... 
    } 
} 

が、構文はそれらを呼び出すためには、参照しないだろうという。

Html.Capitalize("some stuff") 
Html.WordsToArray("some stuff") 
Html.Reverse("some stuff") 
関連する問題