WEB开发网
开发学院软件开发C语言 Effective C# 第4章:创建基于二进制的组件 阅读

Effective C# 第4章:创建基于二进制的组件

 2009-02-19 08:16:12 来源:WEB开发网   
核心提示: 最后一部份就是强名称信息:[assembly: AssemblyDelaySign(false)][assembly: AssemblyKeyFile("")][assembly: AssemblyKeyName("")]应该考虑为所有的程序集都创建

最后一部份就是强名称信息:

[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

应该考虑为所有的程序集都创建强名称,强名称程序集可以防止别人的篡改,而且可以为单个应用程序独立更新个别程序集。然而,你应该在ASP.net应用程序中避免使用强程序集;局部安装的强名称程序集不会正确的加载。同样,强名称程序集必须用AllowPartiallyTrustedCallers特性进行修饰,否则它们不能被非强名称程序集访问(参见原则47)。

实际在更新一个组件时,公共的和受保护的接口部份必须在IL语言层上是兼容的。也就是说不能删除方法,不能修改参数,不能修改返回值。简单的说,没有一个组件愿意在引用你的组件后要重新编译。

你可以添加配置信息来修改引用的程序集。配置信息可以存储在不同的位置,这取决于你想如何更新组件。如果是一个简单的应用程序,你可以创建一个应用程序配置文件,然后把它存放在应用程序目录就行了。如果是配置所以使用同一个组件的应用程序,你可以在GAC中创建一个发布策略文件。最后,如果是全局的修改,你可以修改machine.config文件,这个文件在.Net进行时的配置目录里(参见原则37)。

实际操作中,你可能从来不用修改machine.config文件来更新你的程序集。这个文件包含了基于整台机器的信息。你可以通过应用程序配置文件来更新单个应用程序配置,或者使用一个发布策略来更新多个程序公用的组件。

这是一个XML配置文件,它描述了存在的版本信息和升级后的信息:

<dependentAssembly>
 <assemblyIdentity name="MyAssembly"
  publicKeyToken="a0231341ddcfe32b" culture="neutral" />
 <bindingRedirect oldVersion="1.0.1444.20531"
  newVersion="1.1.1455.20221" />
</dependentAssembly>

你可以通过这个配置文件来标识程序集,旧版本,以及升级后的版本。当你安装和更新了程序集后,你就要更新或者创建一个恰当的配置文件,然后程序程序就可以使用新的版本了。

如果你的软件是一个程序集的集合:你希望个别的更新它们。通过一次更新一个程序集,你须要做一些预先的工作,那就是第一次安装时应该包含一些必要的支持升级的信息。

上一页  1 2 3 4 

Tags:Effective 创建 基于

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接