Megosztás a következőn keresztül:


Objektumtulajdonságok kiterjesztése

A .NET-keretrendszer objektumainak kiterjesztésekor aliastulajdonságokat, kódtulajdonságokat, jegyzettulajdonságokat, szkripttulajdonságokat és tulajdonságkészleteket adhat hozzá az objektumokhoz. A tulajdonságokat meghatározó XML-t a következő szakaszok ismertetik.

Megjegyzés

Az alábbi szakaszokban szereplő példák a PowerShell telepítési könyvtárában ($PSHOME) található alapértelmezett Types.ps1xml típusú fájlból származnak. További információ: About Types.ps1xml.

Alias tulajdonságai

Az aliastulajdonságok egy meglévő tulajdonság új nevét határozzák meg.

Az alábbi példában a Count tulajdonság hozzáadódik a System.Array típushoz. Az AliasProperty elem aliastulajdonságként definiálja a kiterjesztett tulajdonságot. A Név elem adja meg az új nevet. A ReferencedMemberName elem pedig az alias által hivatkozott meglévő tulajdonságot adja meg. A AliasProperty elemet a MemberSets elem tagjaihoz is hozzáadhatja.

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

Kódtulajdonságok

A kódtulajdonságok egy .NET-keretrendszer objektum statikus tulajdonságára hivatkoznak.

Az alábbi példában a Mód tulajdonság hozzáadódik a System.IO.DirectoryInfo típushoz. A CodeProperty elem kódtulajdonságként definiálja a kiterjesztett tulajdonságot. A Név elem adja meg a kiterjesztett tulajdonság nevét. A GetCodeReference elem határozza meg a kiterjesztett tulajdonság által hivatkozott statikus metódust. A CodeProperty elemet a MemberSets elem tagjaihoz is hozzáadhatja.

<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>

Megjegyzés tulajdonságai

A jegyzettulajdonságok statikus értékkel rendelkező tulajdonságot határoznak meg.

Az alábbi példában az Status tulajdonság, amelynek értéke mindig Sikeres, hozzáadódik a System.IO.DirectoryInfo típushoz. A NoteProperty elem a kiterjesztett tulajdonságot jegyzettulajdonságként határozza meg. A Név elem adja meg a kiterjesztett tulajdonság nevét. A Érték elem a kiterjesztett tulajdonság statikus értékét adja meg. A NoteProperty elem hozzáadható a MemberSets elem tagjaihoz is.

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

Szkripttulajdonságok

A szkripttulajdonságok olyan tulajdonságot határoznak meg, amelynek értéke egy szkript kimenete.

Az alábbi példában a VersionInfo tulajdonság hozzáadódik a System.IO.FileInfo típushoz. A ScriptProperty elem szkripttulajdonságként határozza meg a kiterjesztett tulajdonságot. A Név elem adja meg a kiterjesztett tulajdonság nevét. A GetScriptBlock elem határozza meg a tulajdonságértéket létrehozó szkriptet. A ScriptProperty elemet a MemberSets elem tagjaihoz is hozzáadhatja.

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

Tulajdonságkészletek

A tulajdonságkészletek olyan kiterjesztett tulajdonságok csoportját határozzák meg, amelyekre a halmaz neve hivatkozhat. A Format-TableTulajdonság paraméter például megadhat egy megjelenítendő tulajdonságkészletet. Ha egy tulajdonságkészlet meg van adva, csak a készlethez tartozó tulajdonságok jelennek meg.

Az objektumhoz definiálható tulajdonságkészletek száma nincs korlátozva. Az objektumok alapértelmezett megjelenítési tulajdonságainak meghatározásához használt tulajdonságkészleteket azonban meg kell adni a PSStandardMembers tagkészletben. A Types.ps1xml típusfájlban az alapértelmezett tulajdonságkészletek nevei közé tartozik DefaultDisplayProperty, DefaultDisplayPropertySetés DefaultKeyPropertySet. A PSStandardMembers tagkészlet hozzáadott további tulajdonságkészletek figyelmen kívül lesznek hagyva.

Az alábbi példában a DefaultDisplayPropertySet tulajdonságkészlet hozzáadódik a PSStandardMembersSystem.ServiceProcess.ServiceController típushoz. A PropertySet elem határozza meg a tulajdonságok csoportját. A Név elem adja meg a tulajdonságkészlet nevét. A ReferencedProperties elem határozza meg a készlet tulajdonságait. A PropertySet elemet a Típus elem tagjaihoz is hozzáadhatja.

<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>

Lásd még

About Types.ps1xml

System.Management.Automation

Windows PowerShell-parancsmag írása