我想通過.InvokeMember設置屬性,但需要投放時,我不能做到這一點,錯誤InvokeMember的SetProperty與鑄造
public Class A{
private B? _bb;
public B? Bb{
get{return _bb;}
set {_bb=value;}
}
}
public struct B {
public B(int i){}
public static implicit operator B(int p)
{ B q = new B(p);
return q;
}
}
,當我通過簡單的代碼設置,它的工作原理。
A myA=new A();
myA.Bb=12;
但是,當我嘗試通過InvokeMember設置它時,它不適用於鑄造,它只適用於直接類型。
此代碼的工作
A myA=new A();
myA.GetType().InvokeMember("Bb",
BindingFlags.SetProperty, null,myA, new object[] { new B(12) });
但下一行,給了錯誤,並說,它無法找到屬性「BB」
A myA=new A();
myA.GetType().InvokeMember("Bb",
BindingFlags.SetProperty, null,myA, new object[] { 12});
我有過去的方式來使用它,怎麼樣我應該這樣做嗎?
真的是這樣,你正在與測試的代碼?我問你是因爲你把字段/屬性設爲空,而B是一個類,當'T'是一個類時,你不能有'Nullable'。 –
2012-01-15 11:23:43
這是結構,對不起。 – AliRezza 2012-01-15 11:35:33