【发布时间】:2012-08-12 18:09:39
【问题描述】:
我想在我的库中实现一些缓存破坏代码,这些代码可以与 ASP.NET Web 应用程序/站点集成。这将通过将版本字符串附加到 URL 的末尾来实现。我想为缓存清除提供的默认版本提供程序将使用主机网站的程序集版本。
目前,这基本上是我提取此版本号的方式:
HttpContext.Current
.ApplicationInstance
.GetType()
.Assembly
.GetName()
.Version
.ToString()
不幸的是,至少对于我的示例测试站点,应用程序实例的Assembly 是一个生成的程序集(我猜是因为global.asax 被编译成一个新的程序集)。在Get web application assembly name, regardless of current executing assembly 中,SLaks 说您可以使用BaseType 来获取实际站点程序集的类型,但我假设如果站点不使用global.asax 文件,BaseType 会在 BCL 中为您提供一些东西。
是否有任何可靠的方法来提取 ASP.NET Web 应用程序的程序集版本号?我还准备了替代方法来生成每个构建唯一的令牌,这不需要应用程序开发人员额外的构建步骤。
【问题讨论】:
-
尝试改用 this.GetType() .....
标签: asp.net reflection .net-assembly outputcache