System.Web.Compilation.AssemblyBuilder.CSharpCodePragmaGenerator.DecorateFile C# (CSharp) Method

DecorateFile() public method

public DecorateFile ( string path, string filename, MD5 checksum, Encoding enc ) : void
path string
filename string
checksum MD5
enc System.Text.Encoding
return void
			public void DecorateFile (string path, string filename, MD5 checksum, Encoding enc)
			{
				string newline = Environment.NewLine;
				var sb = new StringBuilder ();
				
				sb.AppendFormat ("#pragma checksum {0} \"{1}\" \"{2}\"{3}{3}",
						 QuoteSnippetString (filename),
						 BaseCompiler.HashMD5.ToString ("B"),
						 ChecksumToHex (checksum),
						 newline);
				sb.AppendFormat ("#line 1 {0}{1}", QuoteSnippetString (filename), newline);

				byte[] bytes = enc.GetBytes (sb.ToString ());
				using (FileStream fs = new FileStream (path, FileMode.Open, FileAccess.Write)) {
					fs.Seek (enc.GetPreamble ().Length, SeekOrigin.Begin);
					fs.Write (bytes, 0, bytes.Length);
					bytes = null;
				
					sb.Length = 0;
					sb.AppendFormat ("{0}#line default{0}#line hidden{0}", newline);
					bytes = Encoding.UTF8.GetBytes (sb.ToString ());
				
					fs.Seek (0, SeekOrigin.End);
					fs.Write (bytes, 0, bytes.Length);
				}
				
				sb = null;
				bytes = null;
			}
		}