Wann wird diese Klasse initialisiert ?

27/10/2009 - 15:38 von Andreas Kammann | Report spam
Hi zusammen, ich habe im Code von Dotnetnuke folgendes gefunden.

es wird oft folgender Code benutzt.
DotNetNukeContext.Current.Application.Version
order
DotNetNukeContext.Current.Application.Status


Die dazu gehörige Klasse. Es wird aber im Code immer nur
DotNetNukeContext.Current... geschrieben. Nirgendwo wird die Klasse
initialisiert. Habe ich da was übersehen. Versuche im Moment àhnliches
nachzubauen aber wenn ich folgenden Code mache
DotNetNukeContext.Current... (natürlich auf meine Klasse geàndert) , denn
ist DotNetNukeContext.Current... immer nothing.





Namespace DotNetNuke.Application

Public Class DotNetNukeContext

#Region "Private Members"

Private _Application As Application
Private _SkinEventListeners As List(Of SkinEventListener)
Private _ContainerEventListeners As List(Of ContainerEventListener)

#End Region

#Region "Private Shared Members"

Private Shared _Current As DotNetNukeContext

#End Region

#Region "Constructors"

Protected Sub New()
Me.New(New Application())
End Sub

Protected Sub New(ByVal application As Application)
_Application = application
_ContainerEventListeners = New List(Of ContainerEventListener)()
_SkinEventListeners = New List(Of SkinEventListener)()
End Sub

#End Region

#Region "Public Properties"

Public ReadOnly Property Application() As Application
Get
Return _Application
End Get
End Property

Public ReadOnly Property ContainerEventListeners() As List(Of
ContainerEventListener)
Get
Return _ContainerEventListeners
End Get
End Property

Public ReadOnly Property SkinEventListeners() As List(Of
SkinEventListener)
Get
Return _SkinEventListeners
End Get
End Property

#End Region

#Region "Public Shared Properties"

Public Shared Property Current() As DotNetNukeContext
Get
If _Current Is Nothing Then
_Current = New DotNetNukeContext
End If
Return _Current
End Get
Set(ByVal value As DotNetNukeContext)
_Current = value
End Set
End Property

#End Region

End Class

End Namespace
 

Lesen sie die antworten

#1 Stefan Hoffmann
27/10/2009 - 16:39 | Warnen spam
hallo Andreas,

Andreas Kammann wrote:
Hi zusammen, ich habe im Code von Dotnetnuke folgendes gefunden.

es wird oft folgender Code benutzt.
DotNetNukeContext.Current.Application.Version
order
DotNetNukeContext.Current.Application.Status


Die dazu gehörige Klasse. Es wird aber im Code immer nur
DotNetNukeContext.Current... geschrieben. Nirgendwo wird die Klasse
initialisiert. Habe ich da was übersehen.


Ja, das Singelton-Pattern:

#Region "Public Shared Properties"

Public Shared Property Current() As DotNetNukeContext
Get
If _Current Is Nothing Then
_Current = New DotNetNukeContext
End If
Return _Current
End Get
Set(ByVal value As DotNetNukeContext)
_Current = value
End Set
End Property

#End Region



http://vbnotebookfor.net/2007/09/13...-in-vbnet/
http://www.dofactory.com/Patterns/P...leton.aspx


mfG

Ähnliche fragen