PowerShell Получает список свойств базового класса

#powershell

Вопрос:

У меня 2 класса. Один базовый класс и один дочерний класс. Теперь я хочу знать все свойства, которые находятся в базовом классе.

 class MyBase {  [Int64]$BaseAttrib  MyBase([Int64]$BaseAttrib)  {  $this.BaseAttrib = $BaseAttrib  } }  class MyExtended : MyBase {  [Int64]$ExtendedAttrib  MyExtended([Int64]$BaseAttrib,[Int64]$ExtendedAttrib) : base($BaseAttrib)  {  $this.ExtendedAttrib = $ExtendedAttrib  } }  $O1=New-Object -TypeName "MyExtended" -ArgumentList (0,1) #$o1 | Get-Member -Name "ExtendedAttrib" -MemberType Property ([MyBase]$o1) | Get-Member -Name "ExtendedAttrib" -MemberType Property ([MyBase]$o1).ExtendedAttrib  

Я бы ожидал, что последняя строка не работает, так как базовый класс не имеет свойства ExtendedAttrib. Когда я выполняю get-член, он всегда возвращает список для дочернего класса и никогда для базового класса.

Если я это сделаю ([MyBase]$O1). IntelliSense отображает только те свойства, которые определены в базовом классе. Как я могу получить тот же список?

Тнх

Комментарии:

1. $o1 | Get-Member возвращает как базовые, так и унаследованные свойства класса. Чего вы хотите достичь ?

Ответ №1:

Попробуй $O1.GetType().BaseType.GetProperties()

Комментарии:

1. Спасибо. Это меня устраивает. Мне просто нужно создать коллекцию с параметрами дочернего класса, которая не должна содержать параметры родительского класса…