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

İlgili makaleler