这就是我要做的事情:
BaseClass base = (BaseClass)
AppDomain.CurrentDomain.CreateInstance("DerivedClassDLL","DerivedClass");
但是,我需要从DerivedClass到达显示等属性.BaseClass没有该属性,我无法实现。
所以不知怎的,我需要将它强制转换为DerivedClass才能达到它但是没有引用DerivedClass所以我无法达到它的类型很容易不像BaseClass那样有参考所以我可以使用它。
我该如何做到这一点?
答案 0 :(得分:3)
在这种情况下,你基本上有两种选择:
BaseClass foo = (BaseClass) AppDomain.CurrentDomain
.CreateInstance("DerivedClassDLL","DerivedClass");
dynamic derived = foo;
string someProperty = derived.SomeProperty;
string someProperty = (string)foo.GetType()
.GetProperty("SomeProperty")
.GetValue(foo, null);
答案 1 :(得分:0)
由于你有一个派生类的实例,这一点反射应该这样做:
var myPropertyInfo = typeof(instanceOfDerivedClass).GetProperty("DerivedClassProperty");
var myPropertyValue = myPropertyInfo.GetValue(instanceOfDerivedClass) as [property type];