Partager via


Extension des propriétés pour les objets

Lorsque vous étendez des objets .NET Framework, vous pouvez ajouter des propriétés d’alias, des propriétés de code, des propriétés de note, des propriétés de script et des jeux de propriétés aux objets. Le code XML qui définit ces propriétés est décrit dans les sections suivantes.

Remarque

Les exemples des sections suivantes proviennent du fichier de types Types.ps1xml par défaut dans le répertoire d’installation de PowerShell ($PSHOME). Pour plus d’informations, consultez About Types.ps1xml.

Propriétés des alias

Une propriété d’alias définit un nouveau nom pour une propriété existante.

Dans l’exemple suivant, la propriété count est ajoutée au type System.Array. L’élément AliasProperty définit la propriété étendue en tant que propriété d’alias. L’élément Name spécifie le nouveau nom. Et l’élément ReferencedMemberName spécifie la propriété existante référencée par l’alias. Vous pouvez également ajouter l’élément AliasProperty aux membres de l’élément MemberSets.

<Type>
  <Name>System.Array</Name>
  <Members>
    <AliasProperty>
      <Name>Count</Name>
      <ReferencedMemberName>Length</ReferencedMemberName>
    </AliasProperty>
  </Members>
</Type>

Propriétés du code

Une propriété de code fait référence à une propriété statique d’un objet .NET Framework.

Dans l’exemple suivant, la propriété mode est ajoutée au type System.IO.DirectoryInfo. L’élément codeProperty définit la propriété étendue comme propriété de code. L’élément Name spécifie le nom de la propriété étendue. Et l’élément GetCodeReference définit la méthode statique référencée par la propriété étendue. Vous pouvez également ajouter l’élément CodeProperty aux membres de l’élément MemberSets.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <CodeProperty>
      <Name>Mode</Name>
      <GetCodeReference>
        <TypeName>Microsoft.PowerShell.Commands.FileSystemProvider</TypeName>
        <MethodName>Mode</MethodName>
      </GetCodeReference>
    </CodeProperty>
  </Members>
</Type>

Propriétés de remarque

Une propriété de note définit une propriété qui a une valeur statique.

Dans l’exemple suivant, la propriété Status, dont la valeur est toujours Success, est ajoutée au type System.IO.DirectoryInfo. L’élément NoteProperty définit la propriété étendue comme propriété de note. L’élément Name spécifie le nom de la propriété étendue. L’élément Value spécifie la valeur statique de la propriété étendue. L’élément NoteProperty peut également être ajouté aux membres de l’élément MemberSets.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <NoteProperty>
      <Name>Status</Name>
      <Value>Success</Value>
    </NoteProperty>
  </Members>
</Type>

Propriétés de script

Une propriété de script définit une propriété dont la valeur est la sortie d’un script.

Dans l’exemple suivant, la propriété VersionInfo est ajoutée au type System.IO.FileInfo. L’élément ScriptProperty définit la propriété étendue en tant que propriété de script. L’élément Name spécifie le nom de la propriété étendue. Et l’élément GetScriptBlock spécifie le script qui génère la valeur de propriété. Vous pouvez également ajouter l’élément ScriptProperty aux membres de l’élément MemberSets.

<Type>
  <Name>System.IO.FileInfo</Name>
  <Members>
    <ScriptProperty>
      <Name>VersionInfo</Name>
      <GetScriptBlock>
        [System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
      </GetScriptBlock>
    </ScriptProperty>
  </Members>
</Type>

Jeux de propriétés

Un jeu de propriétés définit un groupe de propriétés étendues qui peuvent être référencées par le nom du jeu. Par exemple, le paramètre Format-TableProperty peut spécifier un jeu de propriétés spécifique à afficher. Lorsqu’un jeu de propriétés est spécifié, seules les propriétés qui appartiennent au jeu sont affichées.

Il n’existe aucune restriction sur le nombre de jeux de propriétés qui peuvent être définis pour un objet. Toutefois, les jeux de propriétés utilisés pour définir les propriétés d’affichage par défaut d’un objet doivent être spécifiés dans le jeu de membres PSStandardMembers. Dans le fichier de types Types.ps1xml, les noms des ensembles de propriétés par défaut incluent DefaultDisplayProperty, DefaultDisplayPropertySetet DefaultKeyPropertySet. Tous les ensembles de propriétés supplémentaires que vous ajoutez à l’ensemble de membres PSStandardMembers sont ignorés.

Dans l’exemple suivant, le jeu de propriétés DefaultDisplayPropertySet est ajouté au jeu de membres PSStandardMembers du type System.ServiceProcess.ServiceController. L’élément PropertySet définit le groupe de propriétés. L’élément Name spécifie le nom du jeu de propriétés. Et, l’élément ReferencedProperties spécifie les propriétés du jeu. Vous pouvez également ajouter l’élément PropertySet aux membres de l’élément Type.

<Type>
  <Name>System.ServiceProcess.ServiceController</Name>
  <Members>
    <MemberSet>
      <Name>PSStandardMembers</Name>
      <Members>
        <PropertySet>
           <Name>DefaultDisplayPropertySet</Name>
           <ReferencedProperties>
            <Name>Status</Name
            <Name>Name</Name>
            <Name>DisplayName</Name>
          </ReferencedProperties>
        </PropertySet>
      </Members>
    </MemberSet>
  </Members>
</Type>

Voir aussi

À propos des Types.ps1xml

System.Management.Automation

écriture d’une applet de commande Windows PowerShell