无法在WPF项目.net Core 3.0中添加appsettings.json [英] Cannot add appsettings.json inside WPF project .net core 3.0

查看:62
本文介绍了无法在WPF项目.net Core 3.0中添加appsettings.json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 .net Core 3.00 创建一个WPF项目,并且在将项目 appsettings.json 文件添加到我的项目中时遇到了麻烦存储我的数据库连接字符串.

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 to store my DB connection string.

我通常会在 app.config 内部完成操作,但是现在已从 .net Core 中删除了此操作.

I would normally have done inside the app.config, but this has now been removed from .net Core.

每个地方都提到使用 appsettings.json 作为替代,并且必须手动添加&使用 IConfiguration 的实例在 OnStartUp()函数中初始化,然后使用依赖注入将config类传递到项目中.

Everywhere mentions using appsettings.json as a replacement, and that it has to be maunally added & initialised in the OnStartUp() function using an instance of IConfiguration, and there after using Dependancy Injection to pass in the config class into the project.

但是我的问题是只能在 asp.net Core 项目上添加 appsettings.json 项目?不是我的WPF解决方案.

But my issue is that can only add the appsettings.json item on asp.net Core projects?? not my WPF solution.

如果我确实很想念东西(我可能是),我会采取措辞,我似乎找不到任何解决办法.

I do appolgies if I'm missing somthing very obvious (which I probally am), I just cant seem to find any solutions.

非常感谢

推荐答案

步骤:

  • 要添加以下nuget包

  • To Add the following nuget packages

  Microsoft.Extensions.Configuration
  Microsoft.Extensions.Configuration.FileExtensions
  Microsoft.Extensions.Configuration.Json
  Microsoft.Extensions.DependencyInjection

  • 您需要手动创建并添加appsettings.json并将 copy到输出目录设置为 copy(如果较新)

    AppSetting.json

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

    Program.cs(用于.NetCore控制台应用程序)

    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(用于.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>();
            mainWindow.Show();
        }
     
        private void ConfigureServices(IServiceCollection services)
        {
            // ...
     
            services.AddTransient(typeof(MainWindow));
        }
    }
    


    参考:

    这篇关于无法在WPF项目.net Core 3.0中添加appsettings.json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆