#If _MyType <> "Empty" Then Namespace My ''' ''' Modulo utilizzato per definire le proprietà disponibili nello spazio dei nomi My per WPF ''' ''' Module MyWpfExtension Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer) Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User) Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows) Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log) ''' ''' Restituisce l'oggetto applicazione per l'applicazione in esecuzione ''' Friend ReadOnly Property Application() As Application Get Return CType(Global.System.Windows.Application.Current, Application) End Get End Property ''' ''' Restituisce le informazioni sul computer host. ''' Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer Get Return s_Computer.GetInstance() End Get End Property ''' ''' Restituisce le informazioni per l'utente corrente. Se si desidera eseguire l'applicazione con le ''' credenziali utente di Windows correnti, chiamare My.User.InitializeWithWindowsUser(). ''' Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User Get Return s_User.GetInstance() End Get End Property ''' ''' Restituisce il registro applicazioni. I listener possono essere configurati dal file di configurazione dell'applicazione. ''' Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log Get Return s_Log.GetInstance() End Get End Property ''' ''' Restituisce la raccolta di oggetti Window definiti nel progetto. ''' Friend ReadOnly Property Windows() As MyWindows Get Return s_Windows.GetInstance() End Get End Property Friend NotInheritable Class MyWindows Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T If Instance Is Nothing Then If s_WindowBeingCreated IsNot Nothing Then If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.") End If Else s_WindowBeingCreated = New Global.System.Collections.Hashtable() End If s_WindowBeingCreated.Add(GetType(T), Nothing) Return New T() s_WindowBeingCreated.Remove(GetType(T)) Else Return Instance End If End Function Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T) instance = Nothing End Sub Public Sub New() MyBase.New() End Sub Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable Public Overrides Function Equals(ByVal o As Object) As Boolean Return MyBase.Equals(o) End Function Public Overrides Function GetHashCode() As Integer Return MyBase.GetHashCode End Function Friend Overloads Function [GetType]() As Global.System.Type Return GetType(MyWindows) End Function Public Overrides Function ToString() As String Return MyBase.ToString End Function End Class End Module End Namespace Partial Class Application Inherits Global.System.Windows.Application Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo Get Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly()) End Get End Property End Class #End If