【问题标题】:Application not showing updated string value应用程序未显示更新的字符串值
【发布时间】:2019-04-04 05:25:54
【问题描述】:

我有一个带有 const 字符串变量的类的程序集,

public class Data {     
     public const string Version = "1.0.0";
}

这将在另一个程序集中用于分配给字符串属性,

 public class ViewModel 
 {
     AppVersion = Data.Version;

     public String AppVersion 
     {
         get;
         set;
     }
 }

此 AppVersion 将显示在 UI 应用程序上。

问题是,我已将此版本更新为 1.0.1,并且仅构建了此程序集具有 Data 类并将 dll 移至生产环境。

但是,这个新版本没有显示,仍然显示旧版本(1.0.0)。

当我构建具有 AppVersion (ViewModel) 的另一个程序集时,会显示新版本。

出了什么问题?我的程序集如何保持旧版本值?

【问题讨论】:

  • Version 标有const ?请显示您实际更新版本的代码。
  • 忽略 const 内联问题,您可能想改用汇编文件版本? stackoverflow.com/a/909583/2441442

标签: c# .net-assembly


【解决方案1】:

这是conststatic readonly 之间的关键区别。只需像这样更改您的Data 类就可以了:

public class Data {     
    public static readonly string Version = "1.0.0";
}

说明:

AppVersion = Data.Version 的编译时,您的编译器将看到Data.Versionconst string,因此它只需将此行替换为AppVersion = "1.0.0"(为了优化)。

另一方面,当你Data.Versionstatic readonly string 时,编译器会知道他(或她?Roslyn)需要引用Data 类型来获取这个静态字段值,所以当你切换你@987654332 @dll - 您的ViewModel dll 将看到一个实际值。

【讨论】:

    猜你喜欢
    • 2012-12-24
    • 2015-04-18
    • 1970-01-01
    • 2017-09-29
    • 2021-08-25
    • 2012-05-31
    • 2015-10-12
    • 2018-02-05
    • 2019-12-06
    相关资源
    最近更新 更多