Различные части платформы .NET требуют использования имени строки свойства:
-
ArgumentException
использует имя изменяющей переменной -
DependencyProperty
использует имя свойства, которое оно поддерживает -
INotifyPropertyChanged
использует имя только что измененного свойства.
Самый простой способ заселения этих параметров, по-видимому, является жестким их кодированием (т.е.: new ArgumentNullException("myArg")
). Это кажется чрезмерно хрупким не до тех пор, пока вы не поймете, что ваш рефакторинг нарушил связь.
Использование рефлексии для проверки этих параметров - единственное решение, которое выскакивает для меня, но подтверждается, что проверка выполняется только во время выполнения.
Есть ли лучший способ определить отношения между членом и его именем? Предпочтение будет отдано простому, но элегантному исполнению.