read connectionstring outside startup from appsetting.json in vNext

后端 未结 5 895
终归单人心
终归单人心 2020-12-14 02:52

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:

5条回答
  •  Happy的楠姐
    2020-12-14 03:14

    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("Data:MongoDB:MongoServerSettings");
        }
        // ...
    }
    

    Then you should be able to access it from wherever:

    public static string GetDefaultConnectionString()
    {
        return Startup.ConnectionString;
    }
    

提交回复
热议问题