C# 如果类型为字符串,是否创建新对象?
可能重复:C# 如果类型为字符串,是否创建新对象?,c#,reflection,C#,Reflection,可能重复: 如何从字符串变量调用类的构造函数 在PHP中,我可以做到这一点: $myclassName = '\Namespace\MyClass'; $myParameters = array ('param1', 'param2'); $reflection = new \ReflectionClass($myclassName ); $myClassInstance = $reflection->newInstanceArgs($myParameters); 就像我在C#中所
如何从字符串变量调用类的构造函数 在PHP中,我可以做到这一点:
$myclassName = '\Namespace\MyClass';
$myParameters = array ('param1', 'param2');
$reflection = new \ReflectionClass($myclassName );
$myClassInstance = $reflection->newInstanceArgs($myParameters);
就像我在C#中所做的那样
我有一个列表,上面有
- 个人观点
- 海景
- 车景
- PersonViewModel
- 房屋视图模型
- 汽车视图模型
AddPersonView = new RelayCommand(() =>
{
//code
});
AddCarView = new RelayCommand(() =>
{
//code
});
//etc
我想把CommandParameter传递给同一个命令
AddView = new RelayCommand((name) =>
{
// pseudo code
var o = CreateIntance(name + "View");
o.DataContext = CreateIntance(name + "ViewModel");
_observableList.Add(o);
// end
});
你可以试试
像
这个问题()中的回答我不清楚,为什么要这样做?一般来说,你在PHP中所做的任何事情都是你不想在C#中做的。我写了我的类及其方法的名称,这样我可以让我的代码更易于维护。关键字是“反射”。我已经添加了标签。查看相关问题。我将尝试使用
var o=System.Activator.CreateInstance(Type.GetType(“FullNameSpaceClassName”)代码>
Namespace.MyClass obj = (Namespace.MyClass)Activator.CreateInstance(typeof(Namespace.MyClass), new[] { param1, param2});