1

問題があります。.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 であることに注意してください。何が起こっているのですか?

4

0 に答える 0