应用程序未显示更新的字符串值

时间:2019-04-04 05:25:55

标签: c# .net-assembly

我有一个带有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)的程序集时,将显示新版本。

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

1 个答案:

答案 0 :(得分:0)

这是override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if indexPath.row == journals.count { let cellAdding: JournalMainSceneAddNew = { guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdExtra) as? JournalMainSceneAddNew else { return JournalMainSceneAddNew(style: UITableViewCellStyle.value1, reuseIdentifier: cellIdExtra) } return cell }() return cellAdding } let cell: JournalMainSceneCell = { guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdMain) as? JournalMainSceneCell else { return JournalMainSceneCell(style: UITableViewCellStyle.value1, reuseIdentifier: cellIdMain) } return cell }() cell.numberOfCountriesLabel.text = "\(journals[indexPath.row].numberOFCountries)" return cell } const之间的主要区别。只需像这样更改您的static readonly类,就可以了:

Data

说明:

public class Data { public static readonly string Version = "1.0.0"; } 的编译时,您的编译器会看到AppVersion = Data.VersionData.Version,因此只需将其替换为const string(出于优化考虑)。

另一方面,当您AppVersion = "1.0.0"Data.Version时,编译器将知道他(或她?Roslyn)需要引用static readonly string类型来获取此静态字段值,因此当您切换Data dll时-您的Data dll将看到实际值。