C# 来自推断命名空间的类有效,但在显式命名时无效

C# 来自推断命名空间的类有效,但在显式命名时无效,c#,generics,interface,C#,Generics,Interface,我想使用的类是System.Web.Mvc.DependencyResolver。以下工作: using System.Web.Mvc; ... var x = DependencyResolver.Current.GetService<myType>(); 使用System.Web.Mvc; ... var x=DependencyResolver.Current.GetService(); 但是,以下情况并非如此: //using System.Web.Mvc; var x

我想使用的类是
System.Web.Mvc.DependencyResolver
。以下工作:

using System.Web.Mvc;
...
var x = DependencyResolver.Current.GetService<myType>();
使用System.Web.Mvc;
...
var x=DependencyResolver.Current.GetService();
但是,以下情况并非如此:

//using System.Web.Mvc;
var x = System.Web.Mvc.DependencyResolver.Current.GetService<myType>();
//使用System.Web.Mvc;
var x=System.Web.Mvc.DependencyResolver.Current.GetService();
错误是:

非泛型方法“IDependencyResolver.GetService(类型)”不能与类型参数一起使用

如果没有
using System.Web.Mvc
指令,使用什么语法


我想使用System.Web.Http
。这两个名称空间中都存在属性(
Route
RoutePrefix
System.Web.Http
在这个特定的代码文件中有更高的使用率。

通用方法版本
GetService()
是一个扩展方法,它在
System.Web.Mvc
名称空间中的静态类
dependencysolvextensions
中被删除

这与
idependencysolver.GetService()
不同,后者被声明为
dependencysolver
的非泛型实例方法

由于未导入该命名空间,编译器无法找到实现泛型扩展方法
GetService(此IDependencyResolver…
)的静态类

正如Widi所评论的,要在不使用
using
语句的情况下使用它,您需要这样调用它:

var x = System.Web.Mvc.DependencyResolverExtensions.GetService<myType>(System.Web.Mvc.D‌​ependencyResolver.Current);
var x=System.Web.Mvc.dependencySolveRextensions.GetService(System.Web.Mvc.D‌​ependencyResolver.电流);

通用方法版本
GetService()
是一种扩展方法,在
System.Web.Mvc
命名空间中的静态类
dependencySolveRextensions
中删除

这与
idependencysolver.GetService()
不同,后者被声明为
dependencysolver
的非泛型实例方法

由于未导入该命名空间,编译器无法找到实现泛型扩展方法
GetService(此IDependencyResolver…
)的静态类

正如Widi所评论的,要在不使用
using
语句的情况下使用它,您需要这样调用它:

var x = System.Web.Mvc.DependencyResolverExtensions.GetService<myType>(System.Web.Mvc.D‌​ependencyResolver.Current);
var x=System.Web.Mvc.dependencySolveRextensions.GetService(System.Web.Mvc.D‌​ependencyResolver.电流);

在不使用语句的情况下使用扩展名:
System.Web.Mvc.dependencysolvextensions.GetService(System.Web.Mvc.dependencysolver.Current)
在不使用语句的情况下使用扩展名:
System.Web.Mvc.dependencysolvextensions.GetService(System.Web.Mvc.dependencysolver.Current)