Aracılığıyla paylaş


Çıkış Nesnelerini Genişletme

Cmdlet'ler, işlevler ve betikler tarafından döndürülen .NET Framework nesnelerini, tür dosyalarını (.ps1xml) kullanarak genişletebilirsiniz. Tür dosyaları, var olan nesnelere özellik ve yöntem eklemenize olanak sağlayan XML tabanlı dosyalardır. Örneğin, Windows PowerShell, mevcut birkaç .NET Framework nesnesine öğe ekleyen Types.ps1xml dosyasını sağlar. Types.ps1xml dosyası Windows PowerShell yükleme dizininde ($PSHOME) bulunur. Bu nesneleri daha fazla genişletmek veya diğer nesneleri genişletmek için kendi tür dosyanızı oluşturabilirsiniz. Tür dosyası kullanarak bir nesneyi genişlettiğiniz zaman, nesnenin herhangi bir örneği yeni öğelerle genişletilir.

System.Array Nesnesini Genişletme

Aşağıdaki örnek, Windows PowerShell'in Types.ps1xml dosyasındaki System.Array nesnesini nasıl genişletir? Varsayılan olarak, System.Array nesneleri dizideki nesne sayısını listeleyen bir Length özelliğine sahiptir. Ancak, "length" adı özelliği açıkça açıklamadığından, Windows PowerShell Length özelliğiyle aynı değeri görüntüleyen Count diğer ad özelliğini ekler. Aşağıdaki XML, System.Array türüne Count özelliğini ekler.

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

Bu yeni diğer ad özelliğini görmek için, aşağıdaki örnekte gösterildiği gibi herhangi bir dizide Get-Member komutunu kullanın.

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

komutu aşağıdaki sonuçları döndürür.

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

Dizide kaç nesne olduğunu belirlemek için Count özelliğini veya Length özelliğini kullanabilirsiniz. Örneğin:

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

Özel Tür Dosyaları

Özel türler dosyası oluşturmak için, var olan bir tür dosyasını kopyalayarak başlayın. Yeni dosya herhangi bir ada sahip olabilir, ancak dosya uzantısı .ps1xml olmalıdır. Dosyayı kopyaladığınızda, yeni dosyayı Windows PowerShell'in erişebildiği herhangi bir dizine yerleştirebilirsiniz, ancak dosyaları Windows PowerShell yükleme dizinine ($PSHOME) veya yükleme dizininin alt dizinine yerleştirmek yararlı olur.

Dosyaya kendi genişletilmiş türlerinizi eklemek için, genişletmek istediğiniz her nesne için bir types öğesi ekleyin. Aşağıdaki konularda örnekler verilmiştir.

  • Özellikleri ve özellik kümelerini ekleme hakkında daha fazla bilgi için bkz. genişletilmiş özellikler

  • Yöntem ekleme hakkında daha fazla bilgi için bkz. Genişletilmiş Yöntemler.

  • Üye kümeleri ekleme hakkında daha fazla bilgi için bkz. Genişletilmiş Üye Kümeleri.

Kendi genişletilmiş türlerinizi tanımladıktan sonra, genişletilmiş nesnelerinizi kullanılabilir hale getirmek için aşağıdaki yöntemlerden birini kullanın:

  • Genişletilmiş türler dosyanızı geçerli oturumda kullanılabilir hale getirmek için Update-TypeData cmdlet'ini kullanarak yeni dosyayı ekleyin. Türlerinizin diğer tür dosyalarında tanımlanan türlerden öncelikli olmasını istiyorsanız (Types.ps1xml dosyası dahil), Update-TypeData cmdlet'inin PrependData parametresini kullanın.
  • Genişletilmiş türler dosyanızı gelecekteki tüm oturumlarda kullanılabilir hale getirmek için tür dosyasını bir modüle ekleyin, geçerli oturumu dışarı aktarın veya Update-TypeData komutunu Windows PowerShell profilinize ekleyin.

İmzalama Türleri Dosyaları

XML betik blokları içerebileceğinden, değişiklik yapılmasını önlemek için tür dosyaları dijital olarak imzalanmalıdır. Dijital imza ekleme hakkında daha fazla bilgi için bkz. about_Signing

Ayrıca Bkz.

Nesneler için Varsayılan Özellikleri Tanımlamayı

Nesneler için Varsayılan Yöntemleri Tanımlama

Nesneler için Varsayılan Üye Kümelerini Tanımlama

Windows PowerShell Cmdlet'i yazma