Если вы хотите поддерживать несколько значений типа в словаре, как в вашей таблице PowerShell Ha sh, вы можете создать Dictionary<string, object>
здесь:
var dict1 = new Dictionary<string, object>
{
{"param1", "test"},
{"param2", 12},
}
, который затем может быть передан Конструктор:
private Dictionary<string, object> _dict;
public MyConstructor(Dictionary<string, object> dict)
{
_dict = dict
}
Тип object
- это просто класс System.Object
, определенный в. NET, от которого наследуются все типы. Вы можете проверить это в PowerShell с помощью $dict.GetType().BaseType.FullName
, что даст вам System.Object
.
Тем не менее, использование object
, как показано выше, опасно, так как оно не обеспечивает безопасность типов и требует, чтобы вы приводили в object
. Это также известно как Бокс и Распаковка . Было бы лучше использовать сильные типы здесь, если вы можете, или переосмыслить свой дизайн.
Учитывая вышесказанное, мы могли бы вместо этого использовать простой класс со строго типизированными атрибутами:
public class MyClass {
public string Param1 { get; set; }
public int Param2 { get; set; }
}
Тогда вы можете просто инициализировать его следующим образом:
var myObject = new MyClass
{
Param1 = "test1",
Param2 = 12
};
И будет передан вашему конструктору:
private MyClass _myObject;
public MyConstructor(MyClass myObject)
{
_myObject = myObject;
}