MVVM INotifyPropertyChanged z automatyczną implementacją nazwy właściwości

Z mojego zrozumienia, możemy użyć INofityProperty w aplikacji w stylu MVVM z kodem podobnym do następującego

    object _SelectedPerson;
    public object SelectedPerson
    {
        get
        {
            return _SelectedPerson;
        }
        set
        {
            if (_SelectedPerson != value)
            {
                _SelectedPerson = value;
                RaisePropertyChanged("SelectedPerson");
            }
        }
    }

Teraz widziałemDoskonały przykład Josha Smitha gdzie implementuje dodatkowy kod, aby uchwycić, co się stanie, jeśli programista wpisze nazwę właściwości, która nie jest rozpoznawana, na przykład literówka!

Powiedz mi, jeśli tego nie znosisz, ale istnieje sposób, aby uzyskać nazwę metody ze śledzenia stosu. Moglibyśmy zamiast tego wdrożyć coś takiego

    object _SelectedPerson;
    public object SelectedPerson
    {
        get
        {
            return _SelectedPerson;
        }
        set
        {
            if (_SelectedPerson != value)
            {
                _SelectedPerson = value;
                RaisePropertyChanged(Current.Method);
            }
        }
    }

static class Current
{
    public static string Method()
    {
        StackTrace st = new StackTrace();
        return (st.GetFrame(1).GetMethod().Name.Split('_')[1]);            
    }
}

Mogę tylko założyć, że będzie to zawsze działać, ponieważ zdarzenie RaisePropertyChanged zawsze występuje w seterze (a jeśli się mylę, proszę mnie poprawić).

Teraz proszę zauważyć, że nie jestem w stanie naprawdę tego wypróbować, ponieważ w pracy (gdzie mogę pracować nad większymi projektami) nadal pracuję nad .NET 2.0, więc WPF / MVVM jest w przyszłości bardzo odległy ale uczę się w swoim czasie.

Tak więc moje pytanie pochodzi od tych, którzy go użyli, czy naprawdę lepiej jest mieć podejście, które ostrzega użytkownika o błędzie w porównaniu z usunięciem opcji błędu (czy czujesz, że czegoś nie rozumiem); Chodzi o to, że Josh Smith jest rozpoznawany, ekspert w tej dziedzinie, a więc jeśli sugeruje takie podejście, to normalnie podążałbym ślepo, ale w tym przypadku nie mogę nie odpowiedzieć na to pytanie i czuć potrzebę zrozumienia więcej.

questionAnswers(3)

yourAnswerToTheQuestion