I have a project class (Nuget Package). I need to read in a static class without constructor my connections string to MongoDB.
Static Class Method:
/// <summary>
/// The default key MongoRepository will look for in the appsettings.json
/// </summary>
private const string DefaultConnectionstringName = "Data:MongoDB:MongoServerSettings";
/// <summary>
/// Retrieves the default connectionstring from appsettings.json
/// </summary>
/// <returns>Returns the default connectionstring from the App.config or Web.config file.</returns>
public static string GetDefaultConnectionString()
{
var config = new Configuration();
return config.Get<string>(DefaultConnectionstringName);
}
I have always null... How can I obtain the value outside the Startup.cs without using DI?
It is possible?
In my old code I could do something like that:
/// <summary>
/// Retrieves the default connectionstring from the App.config or Web.config file.
/// </summary>
/// <returns>Returns the default connectionstring from the App.config or Web.config file.</returns>
public static string GetDefaultConnectionString()
{
return ConfigurationManager.ConnectionStrings[DefaultConnectionstringName].ConnectionString;
}
Thanks!!
1.ConnectionString in appsetting.json
Inside your startup, you should save the connection string to a static property on Startup
public class Startup
{
public static string ConnectionString { get; private set; }
public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddUserSecrets();
if (env.IsDevelopment())
{
// For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
ConnectionString = Configuration.Get<string>("Data:MongoDB:MongoServerSettings");
}
// ...
}
Then you should be able to access it from wherever:
public static string GetDefaultConnectionString()
{
return Startup.ConnectionString;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With