Skip to content

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

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

AvoidInt64ArgumentsInComVisibleMethodsRule

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

Description

This rule checks that ComVisible methods do not take System.Int64 arguments because Visual Basic 6 clients do not support it.

Examples

Bad example:

[assembly: ComVisible (false)]
namespace InteropLibrary {
    [ComVisible (true)]
    public class Bad {
        public void DoBadThings (long a)
        {
            // doing bad things
        }
    }
}

Good example (type changed):

[assembly: ComVisible (false)]
namespace InteropLibrary {
    [ComVisible (true)]
    public class Good {
        public void DoGoodThings (int a)
        {
            // doing good things
        }
    }
}

Good example (method is not visible from COM):

[assembly: ComVisible (false)]
namespace InteropLibrary {
    [ComVisible (true)]
    public class Good {
        [ComVisible (false)]
        public void DoGoodThings (long a)
        {
            // doing good things
        }
    }
}

Notes

  • Rule applies only when the containing assembly has ComVisible attribute explicitly set to false and the type has ComVisible attribute explicitly set to true.

Source code

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

Clone this wiki locally