Skip to content

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

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

DoNotUseAutoDualClassInterfaceTypeRule

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

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
}

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally