Vb.net 跨会话维护自动完成/建议列表的最佳方法

Vb.net 跨会话维护自动完成/建议列表的最佳方法,vb.net,autocomplete,clickonce,session-variables,Vb.net,Autocomplete,Clickonce,Session Variables,我想维护一个列表,列出在给定PC上应用程序的所有用途中输入组合框的所有字符串,用作该组合框的自动完成源,即,我在组合框中输入“Fred”,提交数据,关闭应用程序,重新打开应用程序,重新打开组合框,键入“F”,接收建议“Fred” 假设我已经有了在内存中创建和维护这样一个列表的代码,并在将新元素输入组合框等时向其中添加新元素,那么您认为在会话之间保存/加载此数据的最佳方法是什么 可能的复杂因素:此应用程序将通过OneClick部署进行部署,并在每次应用程序启动时在线搜索更新。我希望如果应用程序更新

我想维护一个列表,列出在给定PC上应用程序的所有用途中输入组合框的所有字符串,用作该组合框的自动完成源,即,我在组合框中输入“Fred”,提交数据,关闭应用程序,重新打开应用程序,重新打开组合框,键入“F”,接收建议“Fred”

假设我已经有了在内存中创建和维护这样一个列表的代码,并在将新元素输入组合框等时向其中添加新元素,那么您认为在会话之间保存/加载此数据的最佳方法是什么

可能的复杂因素:此应用程序将通过OneClick部署进行部署,并在每次应用程序启动时在线搜索更新。我希望如果应用程序更新了,那么更新完成后列表仍然存在


感谢您的帮助。

根据您的访问级别,将它们存储在平面文件中似乎是最简单的选择

  • 要读取选项列表,请读取文件,如果不存在,则返回空列表
  • 要添加项目,请创建文件(如果不存在),然后附加该选项
这意味着您不会发送带有更新的空文件,因此数据会保留下来


您可以将文件放入数据目录或使用独立存储。

我只需使用内置的用户设置(我的项目>设置>选择“用户”作为设置范围);它们非常容易检索和更新。虽然我还没有做过广泛的测试,但我相信它们仍然会通过应用程序更新来实现

您的应用程序是否使用数据库?如果是这样,那将是永久存储的另一种选择

编辑

如果您决定使用“用户设置”选项,这里有一个解决这些设置问题的新选项,请单击一次。

您好,您能帮我确认一下您建议我将此文件存储在何处吗;无论是在我自己设置的某个位置,还是仅在应用程序目录中。谢谢。我会说/var/app_name,但我是个*尼克斯人。你们微软的人难道没有一个应用程序可以放置文件的地方吗?我本以为这就是众所周知的艺术。ClickOnce部署将其文件粘在一个可怕的、生成字母数字的地狱中。它是由.net框架的某些部分提供的一种特殊安装方法,基本上不受程序员的控制。这就是为什么我对直接在应用程序文件夹中存储任何文件都有点谨慎。数据目录和独立存储看起来都是不错的选择。