﻿<?xml version="1.0" encoding="utf-8"?><Type Name="DoNotHardcodePathsRule" FullName="Gendarme.Rules.Portability.DoNotHardcodePathsRule"><TypeSignature Language="C#" Value="public class DoNotHardcodePathsRule : Gendarme.Framework.Rule, Gendarme.Framework.IMethodRule" /><TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit DoNotHardcodePathsRule extends Gendarme.Framework.Rule implements class Gendarme.Framework.IMethodRule, class Gendarme.Framework.IRule" /><AssemblyInfo><AssemblyName>Gendarme.Rules.Portability</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.EngineDependency(typeof(Gendarme.Framework.Engines.OpCodeEngine))</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Problem("This string looks like a path that may become invalid if the code is executed on a different operating system.")</AttributeName></Attribute><Attribute><AttributeName>Gendarme.Framework.Solution("Use System.IO.Path and System.Environment to generate paths instead of hardcoding them.")</AttributeName></Attribute></Attributes><Docs><summary>
             This rule checks for strings that contain valid paths, either under Unix or 
             Windows file systems. Path literals are often not portable across 
             operating systems (e.g. different path separators). To ensure correct cross-platform 
             functionality they should be replaced by calls to <c>Path.Combine</c> and/or 
             <c>Environment.GetFolderPath</c>.
             </summary><remarks>This rule is available since Gendarme 2.0</remarks><example>
             Bad example:
             <code>
             void ReadConfig ()
             {
            	using (FileStream fs = File.Open ("~/.local/share/myapp/user.config")) {
            		// read configuration
            	}
             }
             </code></example><example>
             Good example:
             <code>
             void ReadConfig ()
             {
            	string config_file = Environment.GetFolderPath (SpecialFolder.LocalApplicationData);
            	config_file = Path.Combine (Path.Combine (config_file, "myapp"), "user.config");
            	using (FileStream fs = File.Open (config_file)) {
            		// read configuration
            	}
             }
             </code></example></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public DoNotHardcodePathsRule ();" /><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>