gpt4 book ai didi

c# - AppSettings 与 Web.Config 中的项目特定设置

转载 作者:行者123 更新时间:2023-11-30 18:39:21 25 4
gpt4 key购买 nike

好吧,这个让我有点困惑。我有以下内容:

string csvOfAttributes = CableSolve.Web.Properties.Settings.Default.GenerateBoothReportAttributes;

在我的 web.config 中:

<CableSolve.Web.Properties.Settings>
<setting name="GenerateBoothReportAttributes" serializeAs="String">
<value>327, 329, 330, 369, 342</value>
</setting>
</CableSolve.Web.Properties.Settings>

我有两个问题:

  • 如果我从 web.config 文件中省略我的设置,我会收到编译错误。这怎么可能? Web.config 是用户可编辑的;我只期望运行时错误。如果我编译我的应用程序、部署,然后用户编辑此设置的名称——这不会破坏编译后的代码吗?
  • 我可能会将此设置存储在我的 web.config 文件的 appConfig 部分。要访问这些值,我会通过 ConfigurationManager——如果设置丢失,我只会在运行时收到一个空对象。这似乎不太有利,因为我更喜欢在编译过程中出现错误,但这让我想知道:这两个选项之间有什么区别,我应该在什么时候使用它们?

最佳答案

我认为答案主要包含在问题中:整个区别在于基本的键值对模式与更复杂的模式。通过扩展,差异涉及弱类型与强类型,以及运行时与编译时。一般来说,后者更好,就像 .NET 比 Javascript “更好”一样:你会及早收到错误警报,而不是让它们以不可预测和难以追踪的方式冒泡到你的应用程序中。强模式偏好的异常(exception)情况可能包括:

  • 您的应用程序需求在不断变化,因此您不想锁定模式
  • 您正在使用不同开发人员或应用程序将使用的根级配置
  • 您想允许“无效”配置并在运行时处理它们

关于c# - AppSettings 与 Web.Config 中的项目特定设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com