访问全局Silverlight应用程序数据的最佳实践

时间:2015-03-16 12:59:09

标签: vb.net silverlight

我在网站上托管了一堆Silverlight 5应用程序,这些应用程序设置了一些特定于应用程序的数据。其中一个数据是CurrentUser对象。

在启动应用程序(每个)时,它会与Web服务进行通信以获取当前用户信息。但是,需要从SL应用程序中的各种位置访问它。

我认为把它放在Application对象本身是有道理的,但我不确定这是不是一个好习惯。

我将一个包含用户的简单属性放在一个接口中,并在主应用程序类上实现它。

然后,其余的应用程序代码通过静态类访问它:

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并不十分熟悉,所以我试图找出这是否是一种可接受的实践来访问全局数据,或者是否存在复杂性我在这里没有意识到(线程安全问题等等) )。

1 个答案:

答案 0 :(得分:0)

我无法在任何地方找到有关需要提升权限才能访问Application.Current属性的任何细节。同样,在我的所有测试中,似乎我可以根据需要访问此属性,而无需具有提升的权限(本地测试以及部署在其他计算机上的应用程序)。

我已经完成了原始设计,一切似乎都运转正常。

这是否是最佳做法,我不知道。但是,对于访问此类数据而言,这似乎是一个相当干净的解决方案。