Skip to content

Gendarme.Rules.Interoperability.Com.DoNotUseAutoDualClassInterfaceTypeRule(2.10)

Sebastien Pouliot edited this page Jan 15, 2011 · 2 revisions

DoNotUseAutoDualClassInterfaceTypeRule

Assembly: Gendarme.Rules.Interoperability.Com
Version: 2.10

Description

Classes should not use ClassInterfaceAttribute with the value of ClassInterfaceType.AutoDual because this may break COM clients if the class layout changes.

Examples

Bad example:

[ComVisible (true)]
[ClassInterface (ClassInterfaceType.AutoDual)]
class Bad {
    // do something
}

Good example (ClassInterfaceType.None):

[ComVisible (true)]
[ClassInterface (ClassInterfaceType.None)]
class Good : ICloneable {
    public object Clone ()
    {
        return new object ();
    }
}

Good example (no ClassInterface attribute, equal to ClassInterfaceType.AutoDispatch):

[ComVisible (true)]
class Good {
    // do something
}

Feedback

Note that this page was autogenerated (1/15/2011 12:27:16 PM) based on the xmldoc comments inside the rules source code and cannot be edited from this wiki. Please report any documentation errors, typos or suggestions to the Gendarme Google Group. Thanks!

Clone this wiki locally