在ASP.NET中,我可以执行Session [“something”] = something;然后我可以在另一个页面中检索会话的值.
WPF中是否有一个Session允许我在ASP.NET中执行同样的操作?我注意到WPF中没有会话,因为有状态.因为我有很多用户控制页面,我需要获取它的值并显示在MainWindow上.
有什么类似于WPF中的Session吗?
有些资源说使用cookies.我怎么做?我的WPF应用程序不是WPF Web应用程序?
解决方法
如果我正确理解您的问题,您只需要在程序中为某些值提供某种全局存储.
您可以为需要存储的各种值创建具有公共静态属性的静态类,并能够在应用程序内全局访问.就像是:
public static class Global { private string s_sSomeProperty; static Globals () { s_sSomeProperty = ...; ... } public static string SomeProperty { get { return ( s_sSomeProperty ); } set { s_sSomeProperty = value; } } ... }
这样,您可以在Global类可用的代码中将Global.SomeProperty写入任何地方.
当然,您需要验证,并且 – 如果您的应用程序是多线程的 – 正确的锁定,以确保您的全局(共享)数据在线程之间受到保护.