最近我了解到,虽然 NET 2.0 版本StringBuilder
针对ToString()
NET 4.0 版本进行了优化,但针对Append()
. 这让我想知道——我可以选择在每种情况下使用哪个版本的系统类吗?
(这个问题不是关于StringBuilder
,而是关于任何系统类。StringBuilder
只是一个例子。)
你不能。
通常系统类(或任何第三方库)可以在幕后合作,使用私有数据进行通信(即那些标记为私有或内部的项目)。
如果您尝试将错误的版本一起使用,他们可能无法找到他们期望的私有数据,并且会发生意外行为。
你可以试试这样的
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<!-- Assembly versions can be redirected in application, publisher policy, or machine configuration files. -->
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="mySecondAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<!-- Publisher policy can be set only in the application configuration file. -->
<publisherPolicy apply="no">
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>