Extender propiedades para objetos
Cuando extiende objetos .NET Framework, puede agregar propiedades de alias, propiedades de código, propiedades de notas, propiedades de script y conjuntos de propiedades a los objetos. El XML que define estas propiedades se describe en las siguientes secciones.
Nota
Los ejemplos de las siguientes secciones provienen del archivo de tipos predeterminado Types.ps1xml en el directorio de instalación de PowerShell ($PSHOME). Para obtener más información, consulte Acerca de Types.ps1xml.
Propiedades de alias
Una propiedad de alias define un nuevo nombre para una propiedad existente.
En el siguiente ejemplo, la propiedad Count se agrega al tipo System.Array. El elemento AliasProperty define la propiedad extendida como una propiedad de alias. El elemento Nombre especifica el nuevo nombre. Y el elemento ReferencedMemberName especifica la propiedad existente a la que hace referencia el alias. También puede agregar el elemento AliasProperty a los miembros del elemento MemberSets.
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
Propiedades del código
Una propiedad de código hace referencia a una propiedad estática de un objeto .NET Framework.
En el siguiente ejemplo, la propiedad Mode se agrega al tipo System.IO.DirectoryInfo. El elemento CodeProperty define la propiedad extendida como una propiedad de código. El elemento Nombre especifica el nombre de la propiedad extendida. Y el elemento GetCodeReference define el método estático al que hace referencia la propiedad extendida. También puede agregar el elemento CodeProperty a los miembros del elemento 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>
Propiedades de nota
Una propiedad de nota define una propiedad que tiene un valor estático.
En el siguiente ejemplo, la propiedad Estado, cuyo valor siempre es Éxito, se agrega al tipo System.IO.DirectoryInfo. El elemento NoteProperty define la propiedad extendida como una propiedad de nota. El elemento Nombre especifica el nombre de la propiedad extendida. El elemento Valor especifica el valor estático de la propiedad extendida. El elemento NoteProperty también se puede agregar a los miembros del elemento MemberSets.
<Type>
<Name>System.IO.DirectoryInfo</Name>
<Members>
<NoteProperty>
<Name>Status</Name>
<Value>Success</Value>
</NoteProperty>
</Members>
</Type>
Propiedades del guión
Una propiedad de script define una propiedad cuyo valor es la salida de un script.
En el siguiente ejemplo, la propiedad VersionInfo se agrega al tipo System.IO.FileInfo. El elemento ScriptProperty define la propiedad extendida como una propiedad de script. El elemento Nombre especifica el nombre de la propiedad extendida. Y el elemento GetScriptBlock especifica el script que genera el valor de la propiedad. También puede agregar el elemento ScriptProperty a los miembros del elemento MemberSets.
<Type>
<Name>System.IO.FileInfo</Name>
<Members>
<ScriptProperty>
<Name>VersionInfo</Name>
<GetScriptBlock>
[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
</GetScriptBlock>
</ScriptProperty>
</Members>
</Type>
Conjuntos de propiedades
Un conjunto de propiedades define un grupo de propiedades extendidas a las que se puede hacer referencia mediante el nombre del conjunto. Por ejemplo, el parámetro Format-Table Property puede especificar un conjunto de propiedades específico que se mostrará. Cuando se especifica un conjunto de propiedades, solo se muestran aquellas propiedades que pertenecen al conjunto.
No hay restricción en la cantidad de conjuntos de propiedades que se pueden definir para un objeto. Sin embargo, los conjuntos de propiedades utilizados para definir las propiedades de visualización predeterminadas de un objeto deben especificarse dentro del conjunto de miembros PSStandardMembers. En el archivo de tipos Types.ps1xml, los nombres de conjuntos de propiedades predeterminados incluyen DefaultDisplayProperty, DefaultDisplayPropertySet y DefaultKeyPropertySet. Se ignoran todos los conjuntos de propiedades adicionales que agregue al conjunto de miembros PSStandardMembers.
En el siguiente ejemplo, el conjunto de propiedades DefaultDisplayPropertySet se agrega al conjunto de miembros PSStandardMembers del tipo System.Serviceprocess.Servicecontroller. El elemento PropertySet define el grupo de propiedades. El elemento Nombre especifica el nombre del conjunto de propiedades. Y el elemento ReferencedProperties especifica las propiedades del conjunto. También puede agregar el elemento PropertySet a los miembros del elemento 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>
Ver también
Acerca de Types.ps1xml
System.Management.Automation
Escribir un cmdlet de Windows PowerShell