これはうまくいくはずだと思いますが、そうではありません。MissingMemberException が発生します。
class Program
{
static void Main(string[] args)
{
typeof(Class1).InvokeMember("Prop",
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.SetProperty, null, new Class1(), new object[] { TestEnum.One });
typeof(Class1).InvokeMember("Prop",
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.SetProperty, null, new Class1(), new object[] { (int)1 });
}
}
public class Class1
{
public TestEnum Prop { get; set; }
}
public enum TestEnum : int
{
One = 1,
Two,
Three
}
これは、他のすべての System.Reflection メソッドの動作と矛盾しているようです...使用するメソッドを正しく識別するために DefaultBinder を取得する方法についてのアイデアはありますか? または別のアプローチ?