我相信ASP.NET应用程序中“可变短期”持久性的最佳方式是:
Windows窗体应用程序中“可变短期”持久性的最佳方法是:
由于
答案 0 :(得分:3)
那么,对于“表单范围”,您只需使用字段或属性即可。对于应用程序设置和会话设置,您可以使用(静态)类或其他任何方便的方法。
请注意,WinForms应用程序中的应用程序和会话之间确实没有区别,您不再使用服务器了。
答案 1 :(得分:2)
右键单击项目,选择属性 - >设置。您可以编辑持久字段(即设置),指定名称,类型和范围(用户范围或应用程序范围)。
您可以通过< Default Namespace> .Properties.Settings.Default从代码中访问它们。
设置在应用程序运行之间是持久的。
您也应该将这些设置用于表单范围。
所有这些设置都有助于在应用程序运行之间存储持久值。使用常规(静态)字段在一个程序实例中存储数据。
答案 2 :(得分:1)
您可以在创建时指定当前用户或全局用户的设置。如果你查看VS中的项目属性,你会看到这个
alt text http://img268.imageshack.us/img268/9186/projectsettings.png
答案 3 :(得分:0)
对于只能通过表单访问的变量,我只会将它们设为私有字段。在win表单应用程序中没有“会话”这样的东西,但是,你可以使用CallContext来模拟会话,因为HttpContext和Web应用程序中的Session都是基于这个类。
我可能会在Application对象本身或应用程序配置文件中存储任何全局内容。
答案 4 :(得分:0)
我并不完全确定你想要超越对象生命周期的界限但是正如Henk所说的那样,你的表格在其加载的持续时间内具有范围,你可以在表格中添加属性在表单实例化时由您的代码初始化,并将持续到表单被卸载。下一个范围实际上是Application对象(除非您将表单包装在某种自定义容器类中),您可以在其中添加应用程序生命周期的属性(实际上是Application对象)。
要超出Application的范围,请使用Properties类或在注册表中存储数据(在适当标识和命名的位置)。
听起来你在某种程度上是在思考,它听起来有点像全局变量(或者至少比方法或对象范围更大)持久性。而不是根据变量进行思考,而是根据这些对象的对象和属性进行思考。如果您正确设计了对象模型,那么相应属性的持久性应该是该函数的函数。