Projet

Général

Profil

Function New-Struct

function New-Struct param([HashTable]$Structs) 

Cette fonction permet de créer une structure (struct en C#) :
New-Struct @{Album=@{Numero=[Int32];Titre=[String]}}
$A=new-object Album
$A.Numero=7
$A.Titre="SLF" 

ou des structures imbriquées :
 #Windowinfo -> http://msdn.microsoft.com/en-us/library/ms632610(VS.85).aspx
$R=@{
     Rect=@{
       Left=[UInt32];
       Top=[UInt32];
       Right=[UInt32];
       Bottom=[UInt32];
     }; 
    Windowinfo=@{
       cbSize=[UInt32];
       rcWindow="Rect";
       rcClient="Rect";
       dwStyle=[UInt32];
       dwExStyle=[UInt32];
       dwWindowStatus=[UInt32];
       cxWindowBorders=[UInt16];
       cyWindowBorders=[UInt16];
       atomWindowType=[UInt16];
       wCreatorVersion=[UInt16];
    }
} 
New-Struct $R
$Wi=new-object WindowInfo
$Wi
$Wi.RcClient

Il est possible de créer un tableau de structure :
 #Crée un tableau d'album à une dimension contenant  4 éléments
$TabAlbum= new-object Album[]  4
$TabAlbum[0]=$A
$TabAlbum[0]
$TabAlbum[0].Titre

Une fois créée une structure ne peut plus être modifiée dans la session PowerShell courante.
Un assembly chargé dans un domaine d'application .NET ne peut plus être déchargé, à moins de créer un domaine d'application dédié.

Par défaut cela n'est pas possible sous PowerShell, on doit utiliser les classes .NET dédiées.