也许这个问题让你迷惑,但请帮我如何取消引用类型的对象转换为实际的对象
在.NET 4.0中,C#语言
我有两个项目,一个是图书馆为类定义类和属性标记infors,其中一个是处理从库中声明的类的反射的项目。
问题是,没有引用库,我只是使用反射相关的类来读取程序集,我必须获得在对象类中声明的属性的值。
例如
---在LIB项目,名为lib.dll
public class MarkAttribute: Attribute
{
public string A{get;set;}
public string B{get;set;}
}
[Mark(A="Hello" B="World")]
public class Data
{
}
---反射项目
public void DoIt()
{
string TypeName="Lib.Data";
var asm=Assembly.LoadFrom("lib.dll");
foreach (var x in asm.GetTypes())
{
if (x.GetType().Name=="Data")
{
var obj=x.GetType().GetCustomAttributes(false);
//now if i make reference to lib.dll in the usual way , it is ok
var mark=(Lib.MarkAttribute)obj;
var a=obj.A ;
var b=obj.B ;
//but if i do not make that ref
//how can i get A,B value
}
}
}
任何想法赞赏
它的工作,我卡在getType,我差点忘了getProperty方法,它很糟糕 – simpleman 2011-06-09 06:25:45