创建一个给定字符串形式的 Type 的新对象
本文关键字:Type 新对象 对象 一个 创建 字符串 | 更新日期: 2023-09-27 18:33:14
可能的重复项:
使用 C# 反射调用构造函数
如何从字符串变量调用类的构造函数?
在PHP中,我可以这样做:
$myclassName = ''Namespace'MyClass';
$myParameters = array ('param1', 'param2');
$reflection = new 'ReflectionClass($myclassName );
$myClassInstance = $reflection->newInstanceArgs($myParameters);
就像我在 C# 中可以做的那样?
我有一个列表 o 视图,例如
- 人物视图
- 房屋景观
- 汽车景观
和她的视图模型
- 人物视图模型
- 房屋景观模型
- 车景模型
我的代码中有一个可观察集合,我不想为每种类型添加新命令
AddPersonView = new RelayCommand(() =>
{
//code
});
AddCarView = new RelayCommand(() =>
{
//code
});
//etc
我想将命令参数传递给同一个命令
AddView = new RelayCommand((name) =>
{
// pseudo code
var o = CreateIntance(name + "View");
o.DataContext = CreateIntance(name + "ViewModel");
_observableList.Add(o);
// end
});
您可以尝试 Activator.CreateInstance。
喜欢
Namespace.MyClass obj = (Namespace.MyClass)Activator.CreateInstance(typeof(Namespace.MyClass), new[] { param1, param2});