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.DependencyResolver.Current);
var x=System.Web.Mvc.dependencySolveRextensions.GetService(System.Web.Mvc.DependencyResolver.电流);
通用方法版本GetService()
是一种扩展方法,在System.Web.Mvc
命名空间中的静态类dependencySolveRextensions
中删除
这与idependencysolver.GetService()
不同,后者被声明为dependencysolver
的非泛型实例方法
由于未导入该命名空间,编译器无法找到实现泛型扩展方法GetService(此IDependencyResolver…
)的静态类
正如Widi所评论的,要在不使用using
语句的情况下使用它,您需要这样调用它:
var x = System.Web.Mvc.DependencyResolverExtensions.GetService<myType>(System.Web.Mvc.DependencyResolver.Current);
var x=System.Web.Mvc.dependencySolveRextensions.GetService(System.Web.Mvc.DependencyResolver.电流);
在不使用语句的情况下使用扩展名:System.Web.Mvc.dependencysolvextensions.GetService(System.Web.Mvc.dependencysolver.Current)
在不使用语句的情况下使用扩展名:System.Web.Mvc.dependencysolvextensions.GetService(System.Web.Mvc.dependencysolver.Current)