【发布时间】:2011-11-13 10:43:00
【问题描述】:
我有一个名为BackUp 的类,其中包含一些属性。
假设我有一个现有的 BackUp 实例,其属性已初始化。
由于我在 BackUp 类中使用反射,我想创建一个 AgentActivator 对象并需要设置其属性,因此我的想法是从 BackUp 对象中检索属性。
问题是从BackUp对象中取出PropertyInfo对象,并在反射对象上设置匹配属性。
我正在做以下事情:
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 方法。
它的工作是获取字符串(属性名)并从localBackUp 中返回匹配的值,该值包含propName 的属性。
【问题讨论】:
-
你最好先把那些错别字改正……然后你可以指望有人破译你的代码。
-
另外,当您已经知道如何调用
SetValue时,您肯定会知道如何调用GetValue。 -
我试图在不改变句子含义的情况下修正语法。不知道我是否成功,所以如果不是这样,请提前道歉。
-
既然你已经展示了 GetProperty 的使用,我不清楚问题出在哪里 - 你能澄清一下我们是不是被卡住了?
-
localBackup如何存储房产信息?在字典里?
标签: c# reflection