AmbiguousMatchException - Type.GetProperty - C # Отражение
Вчера я столкнулся с проблемой при разработке веб-части (этот вопрос не о веб-части, а о C #). Немного предыстории о проблеме. У меня есть код, который загружает WebPart с помощью Reflection, в котором я получил AmbiguousMatchException. Для воспроизведения попробуйте следующий код
public class TypeA
{
public virtual int Height { get; set; }
}
public class TypeB : TypeA
{
public String Height { get; set; }
}
public class Class1 : TypeB
{
}
Assembly oAssemblyCurrent = Assembly.GetExecutingAssembly();
Type oType2 = oAssemblyCurrent.GetType("AmbigousMatchReflection.Class1");
PropertyInfo oPropertyInfo2 = oType2.GetProperty("Height");//Throws AmbiguousMatchException
oPropertyInfo2 = oType2.GetProperty("Height",
BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance); // I tried this code Neither these BindingFlags or any other didnt help
Я хотел знать BindingFlag, чтобы получить свойство высоты. У вас возникнет вопрос, почему я хотел создать еще одно свойство Height, которое уже есть в базовом классе. Вот какMicrosoft.SharePoint.WebPartPages.PageViewerWebPart
была разработана проверка свойства Height класса PageViewerWebPart.