ASP.NET核心:访问和重用配置对象

时间:2016-05-19 22:37:06

标签: asp.net-core

在我的Startup.cs中,我有以下样板代码:

chart.Posn(Portfolio = strategy, 
           Symbol = tickers, 
           theme = myTheme, 
           Dates = "2016-01-20::2016-01-20",
           TA = "add_TA(range_expansion_index(OHLC(mktdata)))")

我想要做的是在项目的其他地方访问并重新使用已构建的public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); } 对象,而无需在那里构建新的配置对象。我怎么能这样做,甚至可能呢?

1 个答案:

答案 0 :(得分:0)

你有几个选择:

  1. 将配置对象存储在全局变量中。
    • 亲:简单。
    • Con:创建耦合并让每个人都知道Configuration对象。没有DI。没有类型安全。
  2. 将配置对象添加到DI容器中,并在需要的地方使用它。
    • Pro:脱钩。支持DI。
    • Con:您让其他组件了解配置。没有类型安全。
  3. 使用IOptions或使用ConfigurationBinder创建选项对象,然后将其添加到容器中。
    • Pro:漂亮的架构,每个组件只知道选项对象。支持DI。输入安全。
    • Con:更多代码。
  4. 对于Hello World大小的应用程序,选项#1工作正常。对于真实世界的应用程序,我肯定会考虑#3。