2017-01-30 8 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") 
관련 문제