J'ai une bibliothèque de classes qui contient quelques classes de méthodes d'extensions. Le problème auquel je suis actuellement confronté est lorsque j'essaie d'invoquer une méthode d'extension à partir d'un autre projet référençant la bibliothèque, elle ne compile pas à moins que je passe la classe étendue en paramètre.Méthodes d'extension de bibliothèque de classes, ce mot clé ne pointe pas vers la bonne source
définition de la fonction
public static MvcHtmlString Tooltip(this HtmlHelper @this, string tooltip)
{
return new MvcHtmlString([email protected]" <i class=""fa fa-question-circle"" title=""{tooltip}""></i>");
}
la manière attendue de faire un appel de fonction
MyLibrary.Extensions.Tooltip("foo")
le problème que j'ai (la seule façon compile)
MyLibrary.Extensions.Tooltip(HtmlHelper,"foo")
Les méthodes d'extension ne sont pas censées fonctionner ... Où se trouve l'instance de 'HtmlHelper'? –
Omettez le mot clé "this" pour essayer. Comment appelleriez-vous la méthode statique alors? Vous avez besoin d'une instance de type 'HtmlHelper' selon la signature des méthodes. – HimBromBeere
Votre premier exemple "MyLibrary.Extensions.Tooltip (" foo ")" est-il utilisé sur une variable d'instance de type HtmlHelper? Si oui, veuillez inclure toute la ligne de code juste pour être sûr. – nikovn