將global.asax(MvcApplication類)掛起共享屬性是否正常?ASP.NET MVC Global.asax共享屬性
,然後訪問它像這樣在其它地區:
MvcApplication.[SharedPropertyName]
編輯
我所試圖做的是有一個全局可訪問的屬性,它是我的應用程序設置。
我正在使用一個XmlSerializer
來序列化/反序列化一個對象,它包含所有這些屬性。它很好用,但ApplicationSettings
上的Load
方法被共享並返回ApplicationSettings
的一個實例,所以人們在singelton周圍提出的一些其他想法是行不通的。這裏是ApplicationSettings
類:
Public Class ApplicationSettings
#Region "Members/Properties"
Public Property Property1 As String
Public Property Property2 As String
...
#End Region
#Region "Methods"
Public Shared Function GetFilePath() As String
Return HttpContext.Current.Server.MapPath("/Bin/Settings.config")
End Function
Public Shared Function Load() As ApplicationSettings
Try
Dim Serializer As XmlSerializer
Dim Settings As ApplicationSettings
Using Reader As New StreamReader(GetFilePath)
Serializer = New XmlSerializer(GetType(ApplicationSettings))
Settings = CType(Serializer.Deserialize(Reader), ApplicationSettings)
Reader.Close()
End Using
Return Settings
Catch ex As Exception
'Return New ApplicationSettings
Return Nothing
End Try
End Function
Public Sub Save()
Dim Serializer As XmlSerializer
Using Writer As New StreamWriter(GetFilePath, False)
Serializer = New XmlSerializer(GetType(ApplicationSettings))
Serializer.Serialize(Writer, Me)
Writer.Flush()
Writer.Close()
End Using
End Sub
#End Region
End Class
更新我的回答如下。 – 2011-04-20 20:32:57