DIHelper: fixed configure method

This commit is contained in:
pavelbannov 2020-02-17 15:13:40 +03:00
parent a5280a1694
commit 45266f6647

View File

@ -11,6 +11,7 @@ namespace ASC.Common
public List<string> Singleton { get; set; }
public List<string> Scoped { get; set; }
public List<string> Transient { get; set; }
public List<string> Configured { get; set; }
public IServiceCollection ServiceCollection { get; }
public DIHelper(IServiceCollection serviceCollection)
@ -18,6 +19,7 @@ namespace ASC.Common
Singleton = new List<string>();
Scoped = new List<string>();
Transient = new List<string>();
Configured = new List<string>();
ServiceCollection = serviceCollection;
}
@ -142,13 +144,25 @@ namespace ASC.Common
public DIHelper Configure<TOptions>(Action<TOptions> configureOptions) where TOptions : class
{
ServiceCollection.Configure(configureOptions);
var serviceName = $"{typeof(TOptions)}";
if (!Configured.Contains(serviceName))
{
Configured.Add(serviceName);
ServiceCollection.Configure(configureOptions);
}
return this;
}
public DIHelper Configure<TOptions>(string name, Action<TOptions> configureOptions) where TOptions : class
{
ServiceCollection.Configure(name, configureOptions);
var serviceName = $"{typeof(TOptions)}{name}";
if (!Configured.Contains(serviceName))
{
Configured.Add(serviceName);
ServiceCollection.Configure(name, configureOptions);
}
return this;
}
}