访问全球 Silverlight 应用程序数据的最佳实践
Best practice for accessing global Silverlight application data
我在网站上托管了一堆 Silverlight 5 应用程序,这些应用程序设置了一些特定于应用程序的数据。这些数据之一是 CurrentUser 对象。
在启动应用程序(每个应用程序)时,它会与 Web 服务对话以获取当前用户信息。但是,这需要从 SL 应用程序中的各种位置访问。
我认为将它放在 Application 对象本身上是有意义的,但我不确定这是否是一个好的做法。
我在界面中放置了一个包含用户的简单 属性,并在主应用程序 class 上实现了它。
然后,应用程序代码的其余部分通过静态 class:
访问它
Public Module ApplicationUtils
Public Property CurrentUser() As ConnectEntities.WebUser
Get
Dim app As ICommonAppData = TryCast(Application.Current, ICommonAppData)
If (app IsNot Nothing) Then
Return app.CurrentUser
End If
Return Nothing
End Get
Set(value As ConnectEntities.WebUser)
Dim app As ICommonAppData = TryCast(Application.Current, ICommonAppData)
If (app IsNot Nothing) Then
app.CurrentUser = value
End If
Throw New NotImplementedException("Current application does not implement required interface")
End Set
End Property
End Module
我对 Silverlight 不是很熟悉,所以我想知道这是否是访问全局数据的公认做法,或者是否存在我在这里没有意识到的并发症(线程安全问题,等)。
我找不到任何地方提到需要提升权限才能访问 Application.Current 属性 的任何细节。同样,在我的所有测试中,似乎我能够根据需要访问此 属性 而无需提升权限(本地测试以及部署在其他机器上的应用程序)。
我已经推进了我最初的设计,一切似乎都运行良好。
我不知道这是否是最佳做法。但是,这似乎是访问此类数据的一个相当干净的解决方案。
我在网站上托管了一堆 Silverlight 5 应用程序,这些应用程序设置了一些特定于应用程序的数据。这些数据之一是 CurrentUser 对象。
在启动应用程序(每个应用程序)时,它会与 Web 服务对话以获取当前用户信息。但是,这需要从 SL 应用程序中的各种位置访问。
我认为将它放在 Application 对象本身上是有意义的,但我不确定这是否是一个好的做法。
我在界面中放置了一个包含用户的简单 属性,并在主应用程序 class 上实现了它。
然后,应用程序代码的其余部分通过静态 class:
访问它Public Module ApplicationUtils
Public Property CurrentUser() As ConnectEntities.WebUser
Get
Dim app As ICommonAppData = TryCast(Application.Current, ICommonAppData)
If (app IsNot Nothing) Then
Return app.CurrentUser
End If
Return Nothing
End Get
Set(value As ConnectEntities.WebUser)
Dim app As ICommonAppData = TryCast(Application.Current, ICommonAppData)
If (app IsNot Nothing) Then
app.CurrentUser = value
End If
Throw New NotImplementedException("Current application does not implement required interface")
End Set
End Property
End Module
我对 Silverlight 不是很熟悉,所以我想知道这是否是访问全局数据的公认做法,或者是否存在我在这里没有意识到的并发症(线程安全问题,等)。
我找不到任何地方提到需要提升权限才能访问 Application.Current 属性 的任何细节。同样,在我的所有测试中,似乎我能够根据需要访问此 属性 而无需提升权限(本地测试以及部署在其他机器上的应用程序)。
我已经推进了我最初的设计,一切似乎都运行良好。
我不知道这是否是最佳做法。但是,这似乎是访问此类数据的一个相当干净的解决方案。