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


Kimeneti objektumok kiterjesztése

A parancsmagok, függvények és szkriptek által visszaadott .NET-keretrendszer-objektumokat kiterjesztheti típusfájlok (.ps1xml) használatával. A típusok olyan XML-alapú fájlok, amelyekkel tulajdonságokat és metódusokat adhat hozzá a meglévő objektumokhoz. A Windows PowerShell például a Types.ps1xml fájlt biztosítja, amely elemeket ad hozzá több meglévő .NET-keretrendszer-objektumhoz. A Types.ps1xml fájl a Windows PowerShell telepítési könyvtárában ($PSHOME) található. Létrehozhat saját típusfájlt az objektumok további bővítéséhez vagy más objektumok kiterjesztéséhez. Ha egy objektumot típusok fájl használatával terjeszt ki, az objektum bármely példánya ki lesz terjesztve az új elemekkel.

A System.Array objektum kiterjesztése

Az alábbi példa bemutatja, hogyan terjeszti ki a Windows PowerShell a System.Array objektumot a Types.ps1xml fájlban. Alapértelmezés szerint System.Array objektumok rendelkeznek egy Length tulajdonságmal, amely felsorolja a tömb objektumainak számát. Mivel azonban a "hossz" név nem írja le egyértelműen a tulajdonságot, a Windows PowerShell hozzáadja az Count alias tulajdonságot, amely ugyanazt az értéket jeleníti meg, mint a Length tulajdonság. Az alábbi XML hozzáadja a Count tulajdonságot a System.Array típushoz.

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

Az új aliastulajdonság megtekintéséhez használjon egy Get-Member parancsot bármelyik tömbön, ahogyan az az alábbi példában látható.

Get-Member -InputObject (1,2,3,4)

A parancs a következő eredményeket adja vissza.

Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object& Address(Int32 )
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(Array array, Int32 index):
Equals         Method        System.Boolean Equals(Object obj)
Get            Method        System.Object Get(Int32 )
...
Length         Property      System.Int32 Length {get;}

A Count tulajdonság vagy a Length tulajdonság használatával meghatározhatja, hogy hány objektum található egy tömbben. Például:

PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4

Egyéni típusok fájljai

Egyéni típusok létrehozásához először másolja ki a meglévő típusfájlt. Az új fájlnak bármilyen neve lehet, de .ps1xml fájlnévkiterjesztéssel kell rendelkeznie. A fájl másolásakor az új fájlt bármely, a Windows PowerShell számára elérhető könyvtárba helyezheti, de hasznos lehet a fájlokat a Windows PowerShell telepítési könyvtárában ($PSHOME) vagy a telepítési könyvtár alkönyvtárában elhelyezni.

Ha saját kiterjesztett típusokat szeretne hozzáadni a fájlhoz, adjon hozzá egy típuselemet minden kibővítendő objektumhoz. Az alábbi témakörök példákat mutatnak be.

Miután definiálta a saját kiterjesztett típusait, az alábbi módszerek egyikével teheti elérhetővé a kiterjesztett objektumokat:

  • Ha elérhetővé szeretné tenni a kiterjesztett típusok fájlját az aktuális munkamenetben, használja az Update-TypeData parancsmagot az új fájl hozzáadásához. Ha azt szeretné, hogy a típusok elsőbbséget élvezjenek a más típusú fájlokban (beleértve a Types.ps1xml fájlt) definiált típusokkal szemben, használja az Update-TypeData parancsmag PrependData paraméterét.
  • Ha elérhetővé szeretné tenni a kiterjesztett típusok fájlját az összes jövőbeli munkamenetben, adja hozzá a típusfájlt egy modulhoz, exportálja az aktuális munkamenetet, vagy adja hozzá a Update-TypeData parancsot a Windows PowerShell-profiljához.

Aláírási típusok fájljai

A típusok fájljait digitálisan alá kell írni, hogy megakadályozzák az illetéktelen módosítást, mert az XML tartalmazhat szkriptblokkokat. További információ a digitális aláírások hozzáadásáról: about_Signing

Lásd még:

Objektumok alapértelmezett tulajdonságainak meghatározása

Objektumok alapértelmezett metódusainak definiálása

Objektumok alapértelmezett tagkészleteinek meghatározása

Windows PowerShell-parancsmag írása