1

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

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)
4

1 回答 1

1

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

于 2013-08-04T07:33:24.560 回答