問題があります。.NET Framework 3.5 にバグか何かがあるようです。たとえば、次のコードを考えてみましょう。
public interface IListModel
{
Object Selected { get; set; }
}
// And then I define a class:
class ListModel <T> : IListModel where T : class
{
Object IListModel.Selected
{
get
{
return Selected;
}
set
{
Selected = value as T;
}
}
private T _selected;
public virtual T Selected
{
get { return default (T); }
set
{
_selected = value;
}
}
}
public interface IDummy : IListModel
{
}
// Then I define this class:
public class RadioGroupModel : ListModel<string>, IDummy
{
public override string Selected
{
get
{
return base.Selected;
}
set
{
base.Selected = value;
}
}
}
私が実行した場合:
typeof (RadioGroupModel).GetProperty ("Selected", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
一部のマシンでは、AmbiguousMatchException
. 私のコンピューターでは、それは魅力のように機能します。ターゲット フレームワークは .NET Framework 3.5 Full であることに注意してください。何が起こっているのですか?