接口上的扩展方法未显示

Extension method on a interface not showing up

我正在开发 class 库以将一些导航功能扩展到开源框架。我不喜欢将这些功能作为拉取请求直接添加到框架中,因为它不会被每个人使用并且不想不必要地膨胀框架的大小。所以我的想法是作为扩展方法来实现。

代码在框架中是这样实现的。

public interface INavigationService
{
    Task Method1();
    Task Method2();
}

public class NavigationService : INavigationService
{
    public async Task Method1
    {
      //Implementation
    }

    public async Task Method1
    {
      //Implementation
    }
}

并且在框架内的基本视图模型中有 属性 类型的 INavigationService。

public class BaseFrameworkViewModel
{
   public INavigationService NavigationService {get; set;}

   //Other implementations.
} 

并且使用该框架的开发人员确实继承了应用项目中的 BaseFrameworkViewModel 并使用方法 Method1 和 Method2。

public class BaseViewModel : BaseFrameworkViewModel
{
     NavigationService.Method1();
     NavigationService.Method2();
}

现在,我想将 Method3 添加到 NavigationService class。因此,为此我创建了一个 .NetStandard class 库并添加了一个静态 class 并创建了如下所示的扩展方法。但是我看不到 BaseViewModel 中的方法。

我的实现

public static class NavigationExtensionService
{
   public static async Task Method3(this INavigationService navigationService, string a1)
   {
       //Method Implementation
   } 
} 

我已经构建了我创建并在应用程序项目中引用的库,但是当我尝试以下操作时,我没有在 NavigationService 上获得 Method3。

NavigationService.Method3("abcd") //does not resolve Method3

如果有人可以帮助解决此问题,我们将不胜感激。

除了引用程序集,还需要在要使用扩展方法的文件中导入命名空间。