将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