ExtensionMethod.psm1

Présentation
Voici un module PowerShell permettant de créer un fichier .ps1xml dédié aux méthodes d'extension contenues dans un fichier assembly dotnet.

Sous Powershell V1 et V2 on ne peut pas utiliser celles dont le type de this est :

* un type générique, car le système d'extension de type de PowerShell nécessite de préciser des noms de type fort pour chaque paramètrage de la classe générique,
* un type interface, car PowerShell ne sait pas nativement 'extraire' une interface particulière à partir d'un objet. De plus le pipeline de PowerShell 'transforme' les objets de type IEnumerable en System.Array.

Exemple basé sur le projet Dvp.NET :

Code :

$PathAsm="C:\Temp\dvp.net-0.2-beta\Binaries"
$TypesFileName="C:\Temp\DateTimeExtensionMethod.Types.ps1xml"
Import-Module ExtensionMethod
#ou
#Import-Module "Votrepath\ExtensionMethod.psm1" -force

Add-Type -Path "$PathAsm\Developpez.Dotnet.dll" -Pass|
#filtre sur le namespace
# Where {$_.Namespace -eq "Developpez.Dotnet.Reflection"} |
Find-ExtensionMethod -ExcludeGeneric|
Get-ExtensionMethodInfo -ExcludeGeneric -ExcludeInterface|
New-HashTable -key "Key" -Value "Value" -MakeArray|
#Crée un texte représentant une structure XML que
# l'on insére dans un fichier de type PowerShell.
New-ExtensionMethodTypeData > $TypesFileName

#Dans la session courante, chargement et signature si
# nécessaire, du fichier d'extension de type généré :
Type $TypesFileName|More
#Si la stratégie d'exécution est 'AllSigned'
if (Get-ExcecutionPolicy -eq "AllSigned" )
{
#Signe $TypesFileName
}
#Met à jour la configuration de type étendu (ETS)
Update-TypeData $TypesFileName

#usage
$dt=Get-Date
$dt.AddDays(1).Next("Sunday")
# renvoi :
# dimanche 8 août 2010 16:07:54

Téléchargement
Compatibilité
Windows
0  0 
Détails
Catégories : Codes-sources PowerShell
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 3 novembre 2010




Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique Windows