1、 关于IServiceCollection接口的设计spa
public interface IServiceCollection : IList<ServiceDescriptor> { }
a. 为何不直接用List<>集合,而要从新定义一个这样的IServiceCollection接口呢?设计
1. 为了从IList<>那里获得全部的List集合的可重载方法;
2. 有了自已的名字IServiceCollection,而不是List<>这样直接使用,若是直接继承了List<>的话,那么在使用的时候,你用这个List<>根本就不知道这是干啥的,而且还要带上参数;调试
2、关于调试时的跟踪code
[DebuggerDisplay("Lifetime = {Lifetime}, ServiceType = {ServiceType}, ImplementationType = {ImplementationType}")] public class ServiceDescriptor
a. 加上DebuggerDisplay特性,而后用{}把属性名称显出来了便可,在跟踪Stack中你就能看到想要显示的效果了。blog
未完.....继承