说我想为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")
...
有一种简单的方法吗?我试图避免我必须将StringUtils.Capitalize()
作为自己的函数,将HtmlHelper
作为参数。
答案 0 :(得分:2)
没有办法直接这样做。如果支持扩展属性,则可以使其工作,但由于扩展方法适用于HtmlHelper
,因此方法名称必须直接在HtmlHelper
引用之后(在此case Html
property。。
请注意,您可以在名称空间和/或类中对方法本身进行分组:
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")