【问题标题】:aspnet core web.config not loading [duplicate]aspnet core web.config未加载[重复]
【发布时间】:2018-08-22 17:08:30
【问题描述】:

我正在尝试使用 Unity.container 制作一个 aspnet 核心项目。

我的问题是加载 unity.config,所以我正在尝试让项目使用 web.config

这是我的创业公司。

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>().UseUnityServiceProvider(GetContainer());

    private static IUnityContainer GetContainer()
    {

        var unitySection = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
        Dictionary<string, IUnityContainer> containers = new Dictionary<string, IUnityContainer>();
        InitiateContainers(unitySection, containers);
        return containers.Values.First();
    }
    internal const string DefaultContainerName = "Default";

    internal static void InitiateContainers(UnityConfigurationSection unitySection, IDictionary<string, IUnityContainer> containers)
    {
        foreach (var element in unitySection.Containers)
        {
            string name = string.IsNullOrEmpty(element.Name) ? DefaultContainerName : element.Name;
            if (!containers.ContainsKey(name))
            {
                containers.Add(name, new UnityContainer());
            }
            unitySection.Configure(containers[name], element.Name);
        }
    }

但变量“unitySection”始终为空。

如何让 aspnet 核心应用加载 web.config 文件?

我需要导入另一个 nuget 包吗?

【问题讨论】:

  • 我以为 Asp.net core 不使用 web.config 文件?

标签: c# asp.net-core unity-container


【解决方案1】:

感谢 gunr2171 将How to read web.config file in .Net Core app 发布到另一个问题。

问题已通过该问题中的评论解决:

只需将 web.config 重命名为 app.config 即可。

【讨论】:

  • App.config 有效,因为 ASP.NET Core Web 应用程序只是一个控制台应用程序,并且控制台应用程序可以从 App.config 中读取。但是,仅仅因为你可以并不意味着你应该。有一种在 ASP.NET Core 中进行配置的正确方法,但事实并非如此。但是,如果是某些第三方库的要求,您可能无法选择。
  • 是这样的,unity容器使用app.config来加载注册,他们正在将unity.container转换为json格式,但是没有计划发布这个。所以我们必须使用unity,我没有找到另一个使用配置文件并与ASP.NET Core DI集成的DI容器
  • 没关系。这只是一个普遍的警告,您应该只将它用于您绝对必须使用它的用途。不要只因为它就在那里,就开始把所有东西和厨房水槽都扔进去。
  • 我只使用config注册默认加载不了的,或者约定加载不了的,比如需要传参数,或者需要传递一个名为的依赖项。
  • 我有类似的要求要在函数应用程序(NET Core 2.0 Azure Functions)中实现。函数应用程序是类库而不是控制台应用程序。有什么方法可以做到这一点?
猜你喜欢
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 2017-09-13
  • 2020-04-08
  • 2020-05-07
  • 2013-02-04
相关资源
最近更新 更多