개체의 속성 확장
.NET Framework 개체를 확장할 때 별칭 속성, 코드 속성, 참고 속성, 스크립트 속성 및 속성 집합을 개체에 추가할 수 있습니다. 이러한 속성을 정의하는 XML은 다음 섹션에서 설명합니다.
비고
다음 섹션의 예제는 PowerShell 설치 디렉터리($PSHOME
)의 기본 Types.ps1xml
형식 파일에서 가져옵니다. 자세한 내용은 types.ps1xml 참조하세요.
별칭 속성
별칭 속성은 기존 속성의 새 이름을 정의합니다.
다음 예제에서는 Count 속성이 System.Array 형식에 추가됩니다.
AliasProperty 요소는 확장 속성을 별칭 속성으로 정의합니다.
Name 요소는 새 이름을 지정합니다. 또한 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 요소는 확장 속성을 코드 속성으로 정의합니다.
Name 요소는 확장 속성의 이름을 지정합니다. 또한 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>
참고 속성
note 속성은 정적 값이 있는 속성을 정의합니다.
다음 예제에서는 항상 성공 값이Status 속성이 System.IO.DirectoryInfo 형식에 추가됩니다.
NoteProperty 요소는 확장 속성을 메모 속성으로 정의합니다.
Name 요소는 확장 속성의 이름을 지정합니다.
Value 요소는 확장 속성의 정적 값을 지정합니다.
NoteProperty
요소는 MemberSets 요소의 멤버에 추가할 수도 있습니다.
<Type>
<Name>System.IO.DirectoryInfo</Name>
<Members>
<NoteProperty>
<Name>Status</Name>
<Value>Success</Value>
</NoteProperty>
</Members>
</Type>
스크립트 속성
스크립트 속성은 해당 값이 스크립트의 출력인 속성을 정의합니다.
다음 예제에서는 VersionInfo 속성이 System.IO.FileInfo 형식에 추가됩니다.
ScriptProperty 요소는 확장 속성을 스크립트 속성으로 정의합니다.
Name 요소는 확장 속성의 이름을 지정합니다. 또한 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>
속성 집합
속성 집합은 집합의 이름으로 참조할 수 있는 확장 속성 그룹을 정의합니다. 예를 들어 Format-TableProperty 매개 변수는 표시할 특정 속성 집합을 지정할 수 있습니다. 속성 집합을 지정하면 집합에 속한 속성만 표시됩니다.
개체에 대해 정의할 수 있는 속성 집합 수에는 제한이 없습니다. 그러나 개체의 기본 표시 속성을 정의하는 데 사용되는 속성 집합은 PSStandardMembers 멤버 집합 내에서 지정해야 합니다.
Types.ps1xml
형식 파일에서 기본 속성 집합 이름에는 DefaultDisplayProperty, DefaultDisplayPropertySet및 DefaultKeyPropertySet포함됩니다.
PSStandardMembers 멤버 집합에 추가하는 추가 속성 집합은 무시됩니다.
다음 예제에서는 DefaultDisplayPropertySet 속성 집합이 System.ServiceProcess.ServiceController 형식의 PSStandardMembers 멤버 집합에 추가됩니다.
PropertySet 요소는 속성 그룹을 정의합니다.
Name 요소는 속성 집합의 이름을 지정합니다. 또한 ReferencedProperties 요소는 집합의 속성을 지정합니다.
Type 요소의 멤버에 PropertySet
요소를 추가할 수도 있습니다.
<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 대한
PowerShell