Nesnelerin Özelliklerini Genişletme
.NET Framework nesnelerini genişlettiğinizde nesnelere takma ad özellikleri, kod özellikleri, not özellikleri, komut dosyası özellikleri ve özellik kümeleri ekleyebilirsiniz. Bu özellikleri tanımlayan XML aşağıdaki bölümlerde açıklanmaktadır.
Not
Aşağıdaki bölümlerdeki örnekler, PowerShell kurulum dizinindeki ($PSHOME) varsayılan Types.ps1xml türleri dosyasından alınmıştır. Daha fazla bilgi için bkz. Types.ps1xml Hakkında.
Takma ad özellikleri
Takma ad özelliği, mevcut bir özellik için yeni bir ad tanımlar.
Aşağıdaki örnekte Count özelliği System.Array türüne eklenmiştir. AliasProperty öğesi, genişletilmiş özelliği bir takma ad özelliği olarak tanımlar. Ad öğesi yeni adı belirtir. Ve ReferencedMemberName öğesi, takma adın başvuruda bulunduğu mevcut özelliği belirtir. AliasProperty öğesini MemberSets öğesinin üyelerine de ekleyebilirsiniz.
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
Kod özellikleri
Code özelliği, bir .NET Framework nesnesinin statik özelliğine başvurur.
Aşağıdaki örnekte Mode özelliği System.IO.DirectoryInfo türüne eklenmiştir. CodeProperty öğesi, genişletilmiş özelliği bir kod özelliği olarak tanımlar. Name öğesi, genişletilmiş özelliğin adını belirtir. Ve GetCodeReference öğesi, genişletilmiş özelliğin başvuruda bulunduğu statik yöntemi tanımlar. CodeProperty öğesini MemberSets öğesinin üyelerine de ekleyebilirsiniz.
<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>
Not özellikleri
Note özelliği, statik değeri olan bir özelliği tanımlar.
Aşağıdaki örnekte, değeri her zaman Success olan Status özelliği System.IO.DirectoryInfo türüne eklenmiştir. NoteProperty öğesi, genişletilmiş özelliği bir not özelliği olarak tanımlar. Name öğesi, genişletilmiş özelliğin adını belirtir. Value öğesi, genişletilmiş özelliğin statik değerini belirtir. NoteProperty öğesi aynı zamanda MemberSets öğesinin üyelerine de eklenebilir.
<Type>
<Name>System.IO.DirectoryInfo</Name>
<Members>
<NoteProperty>
<Name>Status</Name>
<Value>Success</Value>
</NoteProperty>
</Members>
</Type>
Komut dosyası özellikleri
Bir komut dosyası özelliği, değeri bir komut dosyasının çıktısı olan bir özelliği tanımlar.
Aşağıdaki örnekte VersionInfo özelliği System.IO.FileInfo türüne eklenmiştir. ScriptProperty öğesi, genişletilmiş özelliği bir komut dosyası özelliği olarak tanımlar. Name öğesi, genişletilmiş özelliğin adını belirtir. Ve GetScriptBlock öğesi, özellik değerini oluşturan betiği belirtir. ScriptProperty öğesini MemberSets öğesinin üyelerine de ekleyebilirsiniz.
<Type>
<Name>System.IO.FileInfo</Name>
<Members>
<ScriptProperty>
<Name>VersionInfo</Name>
<GetScriptBlock>
[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
</GetScriptBlock>
</ScriptProperty>
</Members>
</Type>
Özellik setleri
Bir özellik seti, setin adıyla başvurulabilecek bir grup genişletilmiş özelliği tanımlar. Örneğin, Format-Tablo Özellik parametresi görüntülenecek belirli bir özellik kümesini belirtebilir. Bir özellik seti belirtildiğinde yalnızca sete ait olan özellikler görüntülenir.
Bir nesne için tanımlanabilecek özellik kümesi sayısında herhangi bir kısıtlama yoktur. Ancak bir nesnenin varsayılan görüntü özelliklerini tanımlamak için kullanılan özellik kümelerinin PSStandardMembers üye kümesi içinde belirtilmesi gerekir. Types.ps1xml türleri dosyasında, varsayılan özellik kümesi adları DefaultDisplayProperty, DefaultDisplayPropertySet ve DefaultKeyPropertySet'i içerir. PSStandardMembers üye kümesine eklediğiniz tüm ek özellik kümeleri yoksayılır.
Aşağıdaki örnekte, DefaultDisplayPropertySet özellik kümesi, System.Serviceprocess.Servicecontroller türünün PSStandardMembers üye kümesine eklenmiştir. PropertySet öğesi, özellikler grubunu tanımlar. Name öğesi, özellik kümesinin adını belirtir. Ve ReferencedProperties öğesi kümenin özelliklerini belirtir. Ayrıca PropertySet öğesini Type öğesinin üyelerine de ekleyebilirsiniz.
<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>
Ayrıca bakınız
Types.ps1xml Hakkında
System.Management.Automation
Windows PowerShell Cmdlet'i Yazma