制作一个从不使用扩展对象的扩展方法是一个很好的实践吗?

Pie*_*ant 0 c# asp.net-mvc extension-methods

在我们的ASP.NET MVC项目中,我们有一个HtmlHelper生成静态谷歌地图的扩展方法.

public static MvcHtmlString StaticMap(this HtmlHelper helper, string address, string alt, int width, int height, int zoom)
{
    var src = new Uri("http://maps.google.com/maps/api/staticmap?markers=size:mid|color:red|{0}&zoom={1}&size={2}x{3}&maptype=roadmap&sensor=false".FormatInvariant(Uri.EscapeUriString(address), zoom, width, height));
    var href = new Uri("http://maps.google.com/maps?f=q&source=s_q&hl=en&q={0}".FormatInvariant(Uri.EscapeUriString(address)));

    var img = new TagBuilder("img");
    img.MergeAttribute("src", src.ToString());
    img.MergeAttribute("alt", alt);

    var link = new TagBuilder("a") { InnerHtml = img.ToString() };
    link.MergeAttribute("href", href.ToString());

    return MvcHtmlString.Create(link.ToString());
}
Run Code Online (Sandbox Code Playgroud)

对于这个新项目,我们还试图保持所有代码分析规则.现在,显然,Visual Studio代码分析表明我们应该删除helper参数,因为它没有被使用.

这让我想知道扩展方法是否应该总是使用扩展对象,如果没有,那么也许它不应该是扩展方法.

有人有指南或解释的链接可以帮助我决定吗?

Jus*_*ner 12

如果您没有使用该helper对象,则不会扩展任何内容,并且没有理由不在自己的命名空间中将其作为常规静态方法.