When using FxCop 1.36 for a WPF application with a single window that has yet to be modified, I get the InterfaceMethodsShouldBeCallableByChildTypes error with the following details:
Target : #System.Windows.Markup.IComponentConnector.Connect(System.Int32,System.Object) (IntrospectionTargetMember) Resolution : 'Make 'MainWindow' sealed (a breaking change if this class has previously shipped), implement the method non-explicitly, or implement a new method that exposes the functionality of 'IComponentConnector.Connect(int, object)' and is visible to derived classes.' Help : http://msdn2.microsoft.com/library/ms182153(VS.90).aspx (String) Category : Microsoft.Design (String) CheckId : CA1033 (String) RuleFile : Design Rules (String) Info : 'Explicit method implementations are defined with private accessibility. Classes that derive from classes with explicit method implementations and choose to re-declare them on the class will not be able to call into the base class implementation unless the base class has provided an alternate method with appropriate accessibility. When overriding a base class method that has been hidden by explicit interface implementation, in order to call into the base class implementation, a derived class must cast the base pointer to the relevant interface. When calling through this reference, however, the derived class implementation will actually be invoked, resulting in recursion and an eventual stack overflow.' Created : 08/12/2008 22:26:37 (DateTime) LastSeen : 08/12/2008 22:41:05 (DateTime) Status : Active (MessageStatus) Fix Category : NonBreaking (FixCategories) }
Should this simply be ignored?
Ignore it, this is standard code that is in every WPF application and you don’t see people complaining about net being able to call IComponentConnector.Connect from derived classes – so it’s probably safe.
In general I think you should handle FxCop output as suggestions that have to be considered carefully, I’ve got a lot of bad advice from FxCop in the past.