Cannot add appsettings.json inside WPF project .net core 3.0

前端 未结 3 387
梦谈多话
梦谈多话 2020-12-29 09:06

I am creating a WPF project using .net Core 3.00, and I am having trouble adding the item appsettings.json file to my project which is to be used

3条回答
  •  爱一瞬间的悲伤
    2020-12-29 09:35

    Steps:

    • To Add the following nuget packages

        Microsoft.Extensions.Configuration
        Microsoft.Extensions.Configuration.FileExtensions
        Microsoft.Extensions.Configuration.Json
        Microsoft.Extensions.DependencyInjection
      
    • You would need to create and add appsettings.json manually and set copy it to output directory as copy if newer


    AppSetting.json

       {
      "ConnectionStrings": {
        "BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
      },
    }
    

    Program.cs (For .NetCore Console App)

    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
    
        IConfigurationRoot configuration = builder.Build();
    
        Console.WriteLine(configuration.GetConnectionString("BloggingDatabase"));
    }
    

    App.xaml.cs (For .NET CORE WPF)

    public partial class App : Application
    {
        public IServiceProvider ServiceProvider { get; private set; }
     
        public IConfiguration Configuration { get; private set; }
     
        protected override void OnStartup(StartupEventArgs e)
        {
            var builder = new ConfigurationBuilder()
             .SetBasePath(Directory.GetCurrentDirectory())
             .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
     
            Configuration = builder.Build();
    
          Console.WriteLine(Configuration.GetConnectionString("BloggingDatabase"));    
    
            var serviceCollection = new ServiceCollection();
            ConfigureServices(serviceCollection);
     
            ServiceProvider = serviceCollection.BuildServiceProvider();
     
            var mainWindow = ServiceProvider.GetRequiredService();
            mainWindow.Show();
        }
     
        private void ConfigureServices(IServiceCollection services)
        {
            // ...
     
            services.AddTransient(typeof(MainWindow));
        }
    }
    

    References:

    • https://blog.bitscry.com/2017/05/30/appsettings-json-in-net-core-console-app/
    • https://marcominerva.wordpress.com/2019/03/06/using-net-core-3-0-dependency-injection-and-service-provider-with-wpf/
    • https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings

提交回复
热议问题