Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
PrependDataparametresini 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
PowerShell