私はいくつかのプロパティを含むBackUp
という名前のクラスを持っています。 たとえば、既存のインスタンスがBackUp
で、そのプロパティが初期化されているとします。プロパティ名と値を知らないReflectionプロパティオブジェクトを設定します
AgentActivator
オブジェクトを作成したいところのBackUp
クラスでリフレクションを使用していて、そのプロパティを設定する必要があるので、BackUp
オブジェクトからプロパティを取得します。
問題はPropertyInfo
オブジェクトをBackUp
オブジェクトから取り込み、反射オブジェクトに一致するプロパティを設定することです。
私は次のことをやっている:
Assembly assembly = Assembly.LoadFile(localBackUp.AssemblyFileName);
Type currentClasstype = assembly.GetType(localBackUp.ClassName);
PropertyInfo[] properties = currentClasstype.GetProperties();
object classInstance = Activator.CreateInstance(localBackUp.AssemblyFileName,
localBackUp.ClassName);
string propName= null;
foreach(PropertyInfo prop in properties)
{
propName= prop.Name;
currentClasstype.GetProperty(propName).
SetValue(classInstance, findProperty(localBackUp, propNmae), null);
}
私はfindProperty
メソッドを実装する方法を見つける必要があります。 文字列(プロパティ名)を取得し、propName
でプロパティを保持するlocalBackUp
から一致する値を返すことです。
これらのタイプミスをすべて修正する方がいいでしょう –
また、 'SetValue'を呼び出す方法をすでに知っていれば、あなたは' GetValue'を呼び出す方法を理解するでしょう。 –
あなたの文章の意味を変えずに文法を修正しようとしました。私が成功したかどうかわからないので、そうでない場合は事前に謝罪します。 – Otiel