public void ConfigureServices(IServiceCollection services)
{
services.TryAddEnumerable(ServiceDescriptor.Singleton<IProcessingServer, CapProcessingServer>());
services.TryAddEnumerable(ServiceDescriptor.Singleton<IProcessingServer, ConsumerRegister>());
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
这里使用了TryAddEnumerable方法,源码如下:
if (!services.Any(d =>
d.ServiceType == descriptor.ServiceType &&
d.GetImplementationType() == implementationType))
{
services.Add(descriptor);
}
而常用的是TryAddTransient,源码如下:
if (!collection.Any(d => d.ServiceType == descriptor.ServiceType))