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
未完.....繼承