[已解决问题] 看Castle源码有段代码不懂...
提问时间: 2008-04-01 16:27
悬赏分:20 浏览:378 次

public interface IServiceProviderEx : IServiceProvider
{
    T GetService<T>() where T : class;
}

T GetService<T>() where T : class;

这句是什么意思啊?


提问者:翔宇 - 初学一级
最佳答案
这是个泛型方法.
这里,T可以作为任何引用类型(class)使用.

比如你可以这么使用实现了这个接口的类:
IServiceProviderEx provider = new ....;
ServiceType service = provider.GetSerivce<ServiceType>();
2008/4/1 16:30:04 回答者:deerchao


提问者对于答案的评价:谢谢各位的回答,Castle的MVC模式我很喜欢,所以就研究研究.
其它回答(6)
where的作用是对传入的类型T作出约束,这里where T:class 表示T类型必须是一个class(类),所以在调用GetService<T>的时候,T只能是class,而不能是其它,如struct(结构)。
3个月前   回答者:Klesh Wong - 小虾三级
where是对T所作的约束,class表明T必须是引用类型
3个月前   回答者:Anders Cui - 小虾三级
Castle正在研究.
3个月前   回答者:侯垒 - 小虾三级
问题楼上各位都解答的很好了,但问一下,想用castle,但不知从何下手啊?

3个月前   回答者:张荣华 - 小虾三级
TerreyLee有一个研究Castle的系列,可以去看看:-)
3个月前   回答者:Anytao - 菜鸟二级
先尝试做一些简单的应用 比如用ActiveRecord来做ORM,体会体会~再就是它的IOC容器,这个还是非常不错的~轻便易用
3个月前   回答者:wsky - 菜鸟二级
评论
3个月前   deerchao :
回楼上问:建议不用下手了. Linq to sql, Asp.net mvc, Unity等一批官方的东西出来以后, Castle的日子就要不好过了. 还是用官方的吧,谁让我们是活在微软世界里的人呢.
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除