2016-10-14 4 views
3

У меня есть C# конструкторСоздание объекта с помощью параметров имя конструктора в Powershell

class A { 
    public A (name="",version=""){ 
    //do something 
    } 
} 

Соответствующая DLL импортируется в Powershell. Я хочу создать объект A, передав именованные параметры.

$a = New-Object ABC.XYZ.A -ArgumentList @() //pass named params 

Я не мог найти DOC/пример для создания объекта с constructor which takes optional named parameters [there are around 20 params].

ответ

2

Я не думаю, что это возможно, но вы можете обойти его, исходя из класса с 20 параметрами. Смотрите следующие

$Source = @" 
namespace DontCare 
{ 
    /**/ 
    public class TheCrazyClassWith20parametersCtor 
    { 
     public TheCrazyClassWith20parametersCtor(/* 20 named parameters here*/) 
     {} 
    } 

    public class MyWrapper : TheCrazyClassWith20parametersCtor 
    { 
     public MyWrapper(int param1, string param2) 
     : base(
      /* use named parameters here*/ 
     ) 
     {} 
    } 
} 
"@ 

Add-Type -TypeDefinition $Source -Language CSharp 

New-Object -TypeName DontCare.MyWrapper -ArgumentList 42,"Hi!" 

HTH

Смежные вопросы