How can I use IConfiguration to initialize singleton?
public class Singleton
{
Singleton(string apiKey)
{
this.apiKey = apiKey;
}
private static readonly object instanceGeneratorLock = new object();
private static Singleton instance = null;
private readonly string apiKey;
public static Singleton Instance
{
get
{
if (instance == null)
{
lock (instanceGeneratorLock)
{
if (instance == null)
{
/* use IConfiguration here */
var apiKey = System.Configuration.ConfigurationManager.AppSettings["ApiKey"];
instance = new Singleton(apiKey);
}
}
}
return instance;
}
}
}
IConfigurationin this context is actually an anti-pattern. You should send to constructor only the parameters you need. This article should bring you the extra clarifications.