#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