我在運行時加載程序集,並嘗試在運行時執行很多操作,但這太過分了,但反正這就是我努力實現:'System.Reflection.MdFieldInfo'類型的對象無法轉換爲'MyEnum'類型
我有在國外組裝一類叫學生這我在運行時加載
public class Student
{
public bool IsGood { get; set; }
public StudentType St { get; set; }
public University University { get; set; }
}
我可以動態地從裝配通過執行類似加載對象:
var assembly = Assembly.LoadFrom("//path");
Type type = assembly.GetType("TestFrameWork.Student");
var student = Activator.CreateInstance(type);
現在輪到設置屬性,這些屬性也是從外部程序集動態加載的某種類型。
Type UniversityType = assembly.GetType("TestFrameWork.University");
type.GetProperty("University").SetValue(student, Activator.CreateInstance(UniversityType), null);
不錯的部分是,它的工作太!
但是
這裏是問題開始的地方。當我嘗試分配StudentType這是從它失敗,錯誤
同一組件的枚舉類型「System.Reflection.MdFieldInfo」的對象不能被轉換爲
類型「MyEnum」
這是我想設置它:
type3 = assembly.GetType("TestFrameWork.StudentType");
type.GetProperty("St").SetValue(student, type3.GetField("Good"), null);
此代碼失敗..
你的問題是關於'MdFieldInfo'&'MyEnum'但你永遠不向他們展示在你的代碼。 – I4V
我很抱歉混淆它不MyEnum它的StudentType和MdFieldInfoe是東西.net是拋出錯誤。我不知道它來自何處。我最好的猜測是,它是FieldInfo的子類型 – TeaLeave