﻿<?xml version="1.0" encoding="utf-8"?><Type Name="AvoidDeepNamespaceHierarchyRule" FullName="Gendarme.Rules.Naming.AvoidDeepNamespaceHierarchyRule"><TypeSignature Language="C#" Value="public class AvoidDeepNamespaceHierarchyRule : Gendarme.Framework.Rule, Gendarme.Framework.IAssemblyRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit AvoidDeepNamespaceHierarchyRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IAssemblyRule, class Gendarme.Framework.IRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Naming</AssemblyName><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><Base><BaseTypeName>Gendarme.Framework.Rule</BaseTypeName></Base><Interfaces><Interface><InterfaceName>Gendarme.Framework.IAssemblyRule</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>Gendarme.Framework.EngineDependency(typeof(Gendarme.Framework.Engines.NamespaceEngine))</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("The depth of the namespace hierarchy is getting out of control.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Try to keep the depth below 4, with an additional one for specialization (e.g. Design, Interop, Permissions).")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule checks for deeply nested namespaces within an assembly. It will
             warn if the depth is greater than four (default value) unless the fifth (or the
             next) part is one of the specialized name that the framework recommends or a
             name like an internal namespace (something not meant to be seen outside the assembly).
             <list><item><term>Design</term><description>Namespace that provides design-time
             support for its base namespace.</description></item><item><term>Interop</term><description>Namespace that provides all interoperability
             code (e.g. p./invokes) for its base namespace.</description></item><item><term>Permissions</term><description>Namespace that provides all custom 
             permissions for its base namespace.</description></item><item><term>Internal</term><description>Namespace that provides non visible (outside
             the assembly) helper code for its base namespace. <c>Impl</c> while allowed by the 
             rule is not encouraged.
             </description></item></list></summary><remarks>To be added.</remarks><example>
             Bad example:
             <code>
             namespace One.Two.Three.Four.Five {
            	internal class Helper {
            	}
             }
             </code></example><example>
             Good example:
             <code>
             namespace One.Two.Three.Four {
            	internal class FiveHelper {
            	}
             }
             </code></example><example>
             Good example (exception for some namespace specialization):
             <code>
             namespace One.Two.Three.Four.Internal {
            	internal class Helper {
            	}
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public AvoidDeepNamespaceHierarchyRule ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="CheckAssembly"><MemberSignature Language="C#" Value="public Gendarme.Framework.RuleResult CheckAssembly (Mono.Cecil.AssemblyDefinition assembly);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype Gendarme.Framework.RuleResult CheckAssembly(class Mono.Cecil.AssemblyDefinition assembly) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gendarme.Framework.RuleResult</ReturnType></ReturnValue><Parameters><Parameter Name="assembly" Type="Mono.Cecil.AssemblyDefinition" /></Parameters><Docs><param name="assembly">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="MaxDepth"><MemberSignature Language="C#" Value="public int MaxDepth { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 MaxDepth" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.ComponentModel.DefaultValue(4)</AttributeName></Attribute><Attribute><AttributeName>System.ComponentModel.Description("The depth at which namespaces may be nested without triggering a defect.")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><summary>The depth at which namespaces may be nested without triggering a defect.</summary><value>To be added.</value><remarks>Defaults to 4.</remarks></Docs></Member><Member MemberName="Solution"><MemberSignature Language="C#" Value="public override string Solution { get; }" /><MemberSignature Language="ILAsm" Value=".property instance string Solution" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.2.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member></Members></Type>