การขยายคุณสมบัติสำหรับวัตถุ
เมื่อคุณขยายวัตถุ .NET Framework คุณสามารถเพิ่มคุณสมบัตินามแฝง คุณสมบัติรหัส คุณสมบัติบันทึกย่อ คุณสมบัติสคริปต์ และชุดคุณสมบัติให้กับวัตถุได้ XML ที่กำหนดคุณสมบัติเหล่านี้อธิบายไว้ในส่วนต่อไปนี้
บันทึก
ตัวอย่างในส่วนต่อไปนี้มาจากไฟล์ประเภท Types.ps1xml เริ่มต้นในไดเรกทอรีการติดตั้ง PowerShell ($PSHOME) สำหรับข้อมูลเพิ่มเติม โปรดดูเกี่ยวกับ Types.ps1xml
คุณสมบัตินามแฝง
คุณสมบัตินามแฝงกำหนดชื่อใหม่สำหรับคุณสมบัติที่มีอยู่
ในตัวอย่างต่อไปนี้ คุณสมบัติ นับ จะถูกเพิ่มให้กับประเภท System.Array องค์ประกอบ AliasProperty กำหนดคุณสมบัติเพิ่มเติมเป็นคุณสมบัตินามแฝง องค์ประกอบชื่อระบุชื่อใหม่ และองค์ประกอบ ReferencedMemberName ระบุคุณสมบัติที่มีอยู่ซึ่งอ้างอิงโดยนามแฝง คุณยังสามารถเพิ่มองค์ประกอบ AliasProperty ให้กับสมาชิกขององค์ประกอบ MemberSets
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
คุณสมบัติของรหัส
คุณสมบัติของรหัสอ้างอิงถึงคุณสมบัติแบบคงที่ของวัตถุ .NET Framework
ในตัวอย่างต่อไปนี้ คุณสมบัติ Mode จะถูกเพิ่มให้กับประเภท System.IO.DirectoryInfo องค์ประกอบ CodeProperty กำหนดคุณสมบัติเพิ่มเติมเป็นคุณสมบัติรหัส องค์ประกอบชื่อระบุชื่อของคุณสมบัติเพิ่มเติม และองค์ประกอบ GetCodeReference จะกำหนดวิธีการคงที่ที่อ้างอิงโดยคุณสมบัติเพิ่มเติม คุณยังสามารถเพิ่มองค์ประกอบ CodeProperty ให้กับสมาชิกขององค์ประกอบ MemberSets
<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>
คุณสมบัติหมายเหตุ
คุณสมบัติบันทึกย่อกำหนดคุณสมบัติที่มีค่าคงที่
ในตัวอย่างต่อไปนี้ คุณสมบัติ สถานะ ซึ่งมีค่าเป็น ความสำเร็จ เสมอ จะถูกเพิ่มลงในประเภท System.IO.DirectoryInfo องค์ประกอบ NoteProperty กำหนดคุณสมบัติเพิ่มเติมเป็นคุณสมบัติบันทึกย่อ องค์ประกอบชื่อระบุชื่อของคุณสมบัติเพิ่มเติม องค์ประกอบค่าระบุมูลค่าคงที่ของคุณสมบัติเพิ่มเติม องค์ประกอบ NoteProperty ยังสามารถเพิ่มให้กับสมาชิกขององค์ประกอบ MemberSets ได้
<Type>
<Name>System.IO.DirectoryInfo</Name>
<Members>
<NoteProperty>
<Name>Status</Name>
<Value>Success</Value>
</NoteProperty>
</Members>
</Type>
คุณสมบัติสคริปต์
คุณสมบัติสคริปต์กำหนดคุณสมบัติที่มีค่าเป็นผลลัพธ์ของสคริปต์
ในตัวอย่างต่อไปนี้ คุณสมบัติ VersionInfo จะถูกเพิ่มให้กับประเภท System.IO.FileInfo องค์ประกอบ ScriptProperty กำหนดคุณสมบัติเพิ่มเติมเป็นคุณสมบัติสคริปต์ องค์ประกอบชื่อระบุชื่อของคุณสมบัติเพิ่มเติม และองค์ประกอบ GetScriptBlock ระบุสคริปต์ที่สร้างค่าคุณสมบัติ คุณยังสามารถเพิ่มองค์ประกอบ ScriptProperty ให้กับสมาชิกขององค์ประกอบ MemberSets
<Type>
<Name>System.IO.FileInfo</Name>
<Members>
<ScriptProperty>
<Name>VersionInfo</Name>
<GetScriptBlock>
[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
</GetScriptBlock>
</ScriptProperty>
</Members>
</Type>
ชุดคุณสมบัติ
ชุดคุณสมบัติจะกำหนดกลุ่มของคุณสมบัติเพิ่มเติมที่สามารถอ้างอิงได้ด้วยชื่อของชุด ตัวอย่างเช่น พารามิเตอร์ คุณสมบัติ รูปแบบ-ตารางสามารถระบุชุดคุณสมบัติเฉพาะที่จะแสดงได้ เมื่อระบุชุดคุณสมบัติแล้ว ระบบจะแสดงเฉพาะคุณสมบัติที่เป็นของชุดนั้นเท่านั้น
ไม่มีข้อจำกัดเกี่ยวกับจำนวนชุดคุณสมบัติที่สามารถกำหนดให้กับออบเจ็กต์ได้ อย่างไรก็ตาม ชุดคุณสมบัติที่ใช้ในการกำหนดคุณสมบัติการแสดงผลเริ่มต้นของออบเจ็กต์จะต้องระบุภายในชุดสมาชิก PSStandardMembers ในไฟล์ประเภท Types.ps1xml ชื่อชุดคุณสมบัติเริ่มต้นประกอบด้วย DefaultDisplayProperty, DefaultDisplayPropertySet และ DefaultKeyPropertySet ชุดคุณสมบัติเพิ่มเติมใดๆ ที่คุณเพิ่มให้กับชุดสมาชิก PSStandardMembers จะถูกละเว้น
ในตัวอย่างต่อไปนี้ ชุดคุณสมบัติ DefaultDisplayPropertySet จะถูกเพิ่มให้กับชุดสมาชิก PSStandardMembers ของประเภท System.Serviceprocess.Servicecontroller องค์ประกอบ PropertySet กำหนดกลุ่มของคุณสมบัติ องค์ประกอบชื่อระบุชื่อของชุดคุณสมบัติ และองค์ประกอบ ReferencedProperties จะระบุคุณสมบัติของชุด คุณยังสามารถเพิ่มองค์ประกอบ PropertySet ให้กับสมาชิกขององค์ประกอบ Type ได้
<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>
ดูเพิ่มเติม
เกี่ยวกับ Types.ps1xml
System.Management.Automation
การเขียน Windows PowerShell Cmdlet