[Mono-bugs] [Bug 676720] New: New Rule - Detect incorrect "magic" strings passed to INotifyPropertyChanged.PropertyChanged

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Mar 3 10:55:57 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=676720

https://bugzilla.novell.com/show_bug.cgi?id=676720#c0


           Summary: New Rule - Detect incorrect "magic" strings passed to
                    INotifyPropertyChanged.PropertyChanged
    Classification: Mono
           Product: Mono: Tools
           Version: 2.10.x
          Platform: 64bit
        OS/Version: Other
            Status: NEW
          Severity: Enhancement
          Priority: P5 - None
         Component: Gendarme
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: ethan_j_brown at hotmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/534.23
(KHTML, like Gecko) Chrome/11.0.686.1 Safari/534.23

There are many MVVM frameworks that provide an Expression<Func<>> style of
compile time validation when implementing INotifyPropertyChanged. (For
instance, Caliburn.Micro provides a base class that examines the expression and
returns the name of a property of the class to the PropertyChanged event as
expected by the framework --
http://caliburnmicro.codeplex.com/SourceControl/changeset/view/12fcdc26b449#src%2fCaliburn.Micro.Silverlight%2fPropertyChangedBase.cs)

However, passing a "magic" string is still pretty common when implementing
INotifyPropertyChanged yourself in WPF / Silverlight / Moonlight / WP7, and has
a lot better performance.  There are rumors that WPF5 will have some sort of
compiler support, but not sure if that will happen or not.

Here are the MSDN docs on INotifyPropertyChanged.PropertyChanged
http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx


I think it would be nice to have a rule that looks at calls made to the
PropertyChanged event to determine if the magic string being passed refers to
an actual property of the class or not.  If there is no matching property name
in the inheritance hierarchy, that would be considered a violation.

Reproducible: Always

Steps to Reproduce:
1.
2.
3.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list