0

重複の可能性:
c#リフレクションを使用してコンストラクターを呼び出す

文字列変数からクラスのコンストラクターを呼び出す方法は?

PHPではこれを行うことができます:

$myclassName = '\Namespace\MyClass';
$myParameters = array ('param1', 'param2');

$reflection = new \ReflectionClass($myclassName ); 
$myClassInstance = $reflection->newInstanceArgs($myParameters);

C#でできるように?

私は次のようなビューのリストを持っています

  • PersonView
  • HouseView
  • CarView

と彼女のViewModel

  • PersonViewModel
  • HouseViewModel
  • CarViewModel

コードにObservableCollectionが1つあり、種類ごとに新しいコマンドを追加したくない

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 

});
4

1 に答える 1

2

Activator.CreateInstanceを試すことができます。

好き

Namespace.MyClass obj = (Namespace.MyClass)Activator.CreateInstance(typeof(Namespace.MyClass), new[] { param1, param2});
于 2012-05-05T17:54:35.413 に答える