我有一个包含几个扩展方法类的类库。我目前面临的问题是,当我尝试从另一个项目中调用扩展方法时,该项目引用了除非我将扩展类作为参数传递否则它不会编译的库。
函数定义
public static MvcHtmlString Tooltip(this HtmlHelper @this, string tooltip)
{
return new MvcHtmlString($@" <i class=""fa fa-question-circle"" title=""{tooltip}""></i>");
}
进行函数调用的预期方式
MyLibrary.Extensions.Tooltip("foo")
我遇到的问题(它编译的唯一方式)
MyLibrary.Extensions.Tooltip(HtmlHelper,"foo")
扩展方法扩展了其他一些类。所以在你的例子中,给定一个类型的变量Html
HtmlHelper
,你可以调用 Html.Tooltip("foo")
。
您确实需要在要使用它的文件中有一个using MyLibrary.Extensions;
。
扩展方法扩展了关闭类型,因此将它们作为静态方法调用不是预期用法。
您应该能够致电:
HtmlHelper.Tooltip("foo")
甚至:
@Html.Tooltip("foo")
确保命名空间已正确配置为using
:在您的视图中或从web.config
.