﻿<?xml version="1.0" encoding="utf-8"?><Type Name="UseCorrectPrefixRule" FullName="Gendarme.Rules.Naming.UseCorrectPrefixRule"><TypeSignature Language="C#" Value="public class UseCorrectPrefixRule : Gendarme.Framework.Rule, Gendarme.Framework.ITypeRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit UseCorrectPrefixRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IRule, class Gendarme.Framework.ITypeRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Naming</AssemblyName><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>Gendarme.Framework.Rule</BaseTypeName></Base><Interfaces><Interface><InterfaceName>Gendarme.Framework.ITypeRule</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>Gendarme.Framework.FxCopCompatibility("Microsoft.Naming", "CA1715:IdentifiersShouldHaveCorrectPrefix")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.FxCopCompatibility("Microsoft.Naming", "CA1722:IdentifiersShouldNotHaveIncorrectPrefix")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("This type starts with an incorrect prefix or does not start with the required one. All interface names should start with the 'I' letter, followed by another capital letter. All other type names should not have any specific prefix.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Rename the type to have the correct prefix.")</AttributeName></Attribute></Attributes><Docs><summary>
            This rule ensures that types are prefixed correctly. Interfaces should always be prefixed
            with a <c>I</c>, types should never be prefixed with a <c>C</c> (reminder for MFC folks)
            and generic parameters should be a single, uppercased letter or be prefixed with <c>T</c>.
            </summary><remarks>To be added.</remarks><example>
            Bad examples:
            <code>
            public interface Phone {
            	// ...
            }
            public class CPhone : Phone {
            	// ...
            }
            public class Call&lt;Mechanism&gt; {
            	// ...
            }
            </code></example><example>
            Good examples:
            <code>
            public interface IPhone {
            	// ...
            }
            public class Phone : IPhone {
            	// ...
            }
            public class Call&lt;TMechanism&gt; {
            	// ...
            }
            </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public UseCorrectPrefixRule ();" /><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="CheckType"><MemberSignature Language="C#" Value="public Gendarme.Framework.RuleResult CheckType (Mono.Cecil.TypeDefinition type);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Gendarme.Framework.RuleResult CheckType(class Mono.Cecil.TypeDefinition type) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>3.10.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gendarme.Framework.RuleResult</ReturnType></ReturnValue><Parameters><Parameter Name="type" Type="Mono.Cecil.TypeDefinition" /></Parameters><Docs><param name="type">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member></Members></Type>