大家看一下这段代码:
public interface IServiceProvider
{
      // Methods
      object GetService(Type serviceType);
}
//--------
public interface IServiceContainer : IServiceProvider
{
      // Methods
      void AddService(Type serviceType, ServiceCreatorCallback callback);
      void AddService(Type serviceType, object serviceInstance);
      void AddService(Type serviceType, ServiceCreatorCallback callback, bool promote);
      void AddService(Type serviceType, object serviceInstance, bool promote);
      void RemoveService(Type serviceType);
      void RemoveService(Type serviceType, bool promote);
}
------------
public sealed class ServiceContainer : IServiceContainer, IServiceProvider
{
      // Methods
      static ServiceContainer();
      public ServiceContainer();
      public ServiceContainer(IServiceProvider parentProvider);
      public void AddService(Type serviceType, ServiceCreatorCallback callback);
      public void AddService(Type serviceType, object serviceInstance);
      public void AddService(Type serviceType, ServiceCreatorCallback callback, bool promote);
      public void AddService(Type serviceType, object serviceInstance, bool promote);
      public object GetService(Type serviceType);
      public void RemoveService(Type serviceType);
      public void RemoveService(Type serviceType, bool promote);      // Properties
      private IServiceContainer Container { get; }
      private Hashtable Services { get; }      // Fields
      private IServiceProvider parentProvider;
      private Hashtable services;
      private static TraceSwitch TRACESERVICE;
}
这是.net类库里面的ServiceContainer类的实现情况,
我有个疑问是:
IServiceContainer已经继承了IServiceProvider
ServiceContainer为什么还要继承IServiceProvider接口?