﻿<?xml version="1.0" encoding="utf-8"?><Type Name="AvoidStaticMembersInComVisibleTypesRule" FullName="Gendarme.Rules.Interoperability.Com.AvoidStaticMembersInComVisibleTypesRule"><TypeSignature Language="C#" Value="public class AvoidStaticMembersInComVisibleTypesRule : Gendarme.Framework.Rule, Gendarme.Framework.IMethodRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit AvoidStaticMembersInComVisibleTypesRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IMethodRule, class Gendarme.Framework.IRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Interoperability.Com</AssemblyName><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>Gendarme.Framework.Rule</BaseTypeName></Base><Interfaces><Interface><InterfaceName>Gendarme.Framework.IMethodRule</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>Gendarme.Framework.FxCopCompatibility("Microsoft.Interoperability", "CA1407:AvoidStaticMembersInComVisibleTypes")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("Static method is visible to COM, while COM does not support statics.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Add [ComVisible (false)] attribute to the method, or make static method an instance method.")</AttributeName></Attribute></Attributes><Docs><summary>
            COM visible types should not contain static methods because they are
            not supported by COM
            </summary><remarks>
            This rule ignores methods marked with ComRegisterFunctionAttribute or ComUnregisterFunctionAttribute attributes.
            Rule applies only when the containing assembly has ComVisible attribute explicitly set to false
            and the type has ComVisible attribute explicitly set to true.</remarks><example>
            Bad example:
            <code>
            [assembly: ComVisible (false)]
            namespace InteropLibrary {
            	[ComVisible (true)]
            	public class Bad {
            		public static void BadMethod ()
            		{
            			// do something
            		}
            	}
            }
            </code></example><example>
            Good example:
            <code>
            [assembly: ComVisible (false)]
            namespace InteropLibrary {
            	[ComVisible (true)]
            	public class Good {
            		[ComVisiblte (false)]
            		public static void GoodMethod ()
            		{
            			// do something
            		}
            	}
            }
            </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public AvoidStaticMembersInComVisibleTypesRule ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="CheckMethod"><MemberSignature Language="C#" Value="public Gendarme.Framework.RuleResult CheckMethod (Mono.Cecil.MethodDefinition method);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Gendarme.Framework.RuleResult CheckMethod(class Mono.Cecil.MethodDefinition method) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gendarme.Framework.RuleResult</ReturnType></ReturnValue><Parameters><Parameter Name="method" Type="Mono.Cecil.MethodDefinition" /></Parameters><Docs><param name="method">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member></Members></Type>