Я хочу установить свойство с помощью .InvokeMember, но не могу этого сделать, когда требуется приведение,
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});
Я должен использовать его последним способом, как я должен это сделать?