создание пользовательского типа в powershell из производного класса

#c# #powershell-2.0

#c# #powershell-2.0

Вопрос:

Я пытаюсь создать определенный список с моим собственным базовым объектом и некоторыми специальными функциями в моем списке. Он очень хорошо работает как exe. Но не работает, когда я пытаюсь импортировать эквивалентную dll в powershell.

     add-type @"
using System.Collections.Generic;
namespace myTest
{
    public class stuff
   {
       public int val;
       public stuff(int val)
      {
       this.val = val;
      }
   }
   public class tata : List<stuff>
   {
     int val ;
     ..
   }
}
"@
  

при вызове класса с :

 $example = new-object myTest.stuff ->Works
$example2 = new-object myTest.tata ->Does not work
  

Я не могу использовать MyTest.tata, но тип, похоже, объявлен.
кажется, что проблема возникает из

  public class tata: List<stuff>
  

что-то в powershell не может интерпретировать эту строку

У кого-нибудь была такая же проблема и он решил проблему?

Ответ №1:

Отправленный вами код отлично сработал для меня, за исключением предупреждения о том, что val никогда не используется. Поэтому мне пришлось игнорировать предупреждения

     add-type "
using System.Collections.Generic;
namespace myTest
{
    public class stuff
    {
        public int val;
        public stuff(int val)
        {
            this.val = val;
        }
    }
    public class tata : List<stuff>
    {
        int val;
    }
} " -IgnoreWarnings

$example = new-object myTest.stuff(1)
$example2 = new-object myTest.tata
$example2.GetType().Name
  

Это дало мне tata в качестве вывода
Можете ли вы проверить, действительно ли то, что вы отправили, вызывает у вас проблему?