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