【问题标题】:Danger of using reflection to add Connection Strings to ConfigurationManager.ConnectionString使用反射将连接字符串添加到 ConfigurationManager.ConnectionString 的危险
【发布时间】:2013-08-05 01:42:09
【问题描述】:

我看过几篇文章,详细介绍了如何绕过 ReadOnly 障碍,将连接字符串添加到 ConfigurationManager.ConnectionStrings。请参阅下面一篇此类帖子的示例。这些例子中的每一个都伴随着一个可怕但含糊的警告,即所采用的技术是“危险的”。有什么危险?

Dim cssc As ConnectionStringSettingsCollection = WebConfigurationManager.ConnectionStrings
Dim t As Type = cssc.GetType().BaseType ' System.Configuration.ConfigurationElementCollection
Dim fi As FieldInfo = t.GetField("bReadOnly", BindingFlags.Instance Or BindingFlags.NonPublic)
fi.SetValue(cssc, False)

【问题讨论】:

    标签: asp.net reflection connection-string configurationmanager


    【解决方案1】:

    这是“危险”的一个原因是您依赖于一个名为 bReadOnly 的私有字段。该字段不是公共 .NET API 的一部分,可能会在未来版本的 .NET 中更改,恕不另行通知。如果发生这种情况,并且如果您升级到该版本,您的代码将不再有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多