staram się odzwierciedlić na niektóre właściwości klasy i ustawić je programaticlly, ale wygląda jak jeden z moich filtrów PropertyInfo nie działa:„metoda zestaw nieruchomości nie znaleziono” błąd podczas odbicia
//Get all public or private non-static properties declared in this class (no inherited properties) - that have a getter and setter.
PropertyInfo[] props = this.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty);
I otrzymuję błąd na linii
pi.SetValue(this, valueFromData, null);
Ponieważ nieruchomość ma tylko get{}
metodę, nie set{}
metody.
Moje pytanie brzmi, dlaczego ta właściwość nie została odfiltrowana z rekwizytów? Myślałem, że to jest celem BindingFlags.SetProperty.
Nieruchomość nie jest uzyskiwanie odfiltrowane:
public String CollTypeDescription
{
get { return _CollTypeDescription; }
}
Uwaga, że chcę, aby filtrować właściwości, które nie będą działać z wyprzedzeniem, bo jestem wymieniając je wszystkie naraz. Zrobić nie chcesz użyć pi.GetSetMethod()
po fakcie, aby ustalić, czy mogę użyć Settera.
@dtryon - nie - on OR-ing razem flagi dla opcji on chce ustawić . –