如何选择要使用的特定系统类的版本?

时间:2013-04-17 15:42:54

标签: c# .net

最近我了解到,虽然StringBuilder的.NET 2.0版本针对ToString()进行了优化,但.NET 4.0版本已针对Append()进行了优化。这让我感到疑惑 - 我可以选择在每种情况下使用哪个版本的系统类吗?

(这个问题不是关于StringBuilder,而是关于任何系统类。StringBuilder只是一个例子。)

2 个答案:

答案 0 :(得分:0)

不,你不能。

通常,系统类(或任何第三方库)可以在幕后合作,使用私有数据进行通信(即标记为私有或内部的项目)。

如果您尝试一起使用错误的版本,他们可能找不到他们期望的私人数据,并且会发生意外行为。

答案 1 :(得分:0)

您可以尝试这样的事情

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