我想要使用的课程是System.Web.Mvc.DependencyResolver
。以下作品:
using System.Web.Mvc;
...
var x = DependencyResolver.Current.GetService<myType>();
但是,以下情况并非如此:
//using System.Web.Mvc;
var x = System.Web.Mvc.DependencyResolver.Current.GetService<myType>();
错误是:
非通用方法&#39; IDependencyResolver.GetService(Type)&#39;不能与类型参数一起使用。
没有using System.Web.Mvc
指令时使用的语法是什么。
我希望using System.Web.Http
。有两个属性(Route
和RoutePrefix
)存在于这两个名称空间中。 System.Web.Http
在此特定代码文件中的使用率要高得多。
答案 0 :(得分:4)
泛型方法版本GetService<T>()
是一个extensioin方法,在DependencyResolverExtensions
命名空间中的静态类System.Web.Mvc
中进行了描述。
这与IDependencyResolver.GetService()
的方法不同,后者被声明为DependencyResolver
的非泛型实例方法。
由于您没有导入该命名空间,编译器无法找到实现泛型扩展方法GetService<T>(this IDependencyResolver ...)
的静态类。
正如Widi评论的那样,要在没有using
语句的情况下使用它,您需要像这样调用它:
var x = System.Web.Mvc.DependencyResolverExtensions.GetService<myType>(System.Web.Mvc.DependencyResolver.Current);