カスタムBindingSourceを作成していて、MethodInfoをプライベートフィールドとして永続化したいと思います。コード内の問題:
public class MyBindingSource : BindingSource
{
private MethodInfo MyMethod= null;
protected override void OnBindingComplete(BindingCompleteEventArgs e)
{
this.MyMethod = GetMyMethod();
//MyMethod is not null here
}
void UseMyMethod (object value)
{
MyMethod.Invoke(SomeObject, new object[] { value });
//MyMethod is null here, exception thrown.
}
}
MethodInfoは正常に保存されましたが、使用しようとするとnullになってしまいます。特別なコンストラクターは呼び出されていません(フィールドをオーバーライドします)。OnBindingCompleteは2回呼び出されません。他の何かがそれをnullに設定していることを意味するものは何もないようです。