我正在研究创建一种自动化的方法来检查我们系统的运行版本。每当我们发布要测试的代码时,版本都会使用
[assembly: AssemblyVersion("1.21.0.13329")]
[assembly: AssemblyFileVersion("1.21.0.13329")]现在,我想扩展我们的ASP.Net Web 和Web ,以显示这个版本号。所以Web应用程序会把它放在主页的某个地方,web服务可能会有一个返回版本号的web方法。
我在考虑用
Version version = Assembly.GetExecutingAssembly().GetName().Version;做这件事。但我担心,因为这是在使用反射,它可能会给我的代码增加性能开销。它可能会被打几次电话,特别是在主页上,我不希望这样会减慢响应时间。
我有另一个解决方案,所以我不想要替代方案,我只想知道是否有人知道这样做的性能开销是否会比较大?
发布于 2012-06-14 10:33:56
性能开销以及它是否重要的问题实际上取决于访问了多少。在一个页面命中,可能不是-代码执行时间被测量的一些ms。如果服务器负载很大,很有可能。
但你就不能只做一次(也就是仍然使用反射,但不是每次):
我假设在web应用程序实例的生命周期中,这种情况不会改变--那么为什么不捕获一次这个信息并存储它呢?
也许可以创建一个类来捕获它,例如:
public class AppVersion
{
private static readonly Version _applicationVersion = Assembly.GetExecutingAssembly().GetName().Version;
public static Version ApplicationVersion
{
get { return _applicationVersion; }
}
}您现在可以通过以下方式在代码中访问它:
var version = AppVersion.ApplicationVersionhttps://stackoverflow.com/questions/11031233
复制相似问题