CodeChecksumPragma Class
.NET Framework 2.0
Represents a code checksum pragma code entity.
Namespace: System.CodeDom
Assembly: System (in system.dll)
Assembly: System (in system.dll)
'Declaration <SerializableAttribute> _ <ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ <ComVisibleAttribute(True)> _ Public Class CodeChecksumPragma Inherits CodeDirective 'Usage Dim instance As CodeChecksumPragma
/** @attribute SerializableAttribute() */ /** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ /** @attribute ComVisibleAttribute(true) */ public class CodeChecksumPragma extends CodeDirective
SerializableAttribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) ComVisibleAttribute(true) public class CodeChecksumPragma extends CodeDirective
Not applicable.
The CodeChecksumPragma class inherits from CodeDirective and can be contained in a CodeDirectiveCollection. CodeChecksumPragma provides the unique identification of source files, including files that have been generated.
The following code example shows the use of the CodeChecksumPragma class.
Imports System.CodeDom Imports System.CodeDom.Compiler Imports System.Collections Imports System.Collections.Specialized Imports System.IO Imports System.Reflection Imports System.Text.RegularExpressions Imports System.Globalization Class CodeDirectiveDemo Shared Sub Main() Try DemonstrateCodeDirectives("vb", "ChecksumPragma.vb", "ChecksumPragmaVB.exe") Catch e As Exception Console.WriteLine(("Unexpected exception:" + e.ToString())) End Try End Sub 'Main ' Create and compile code containing code directives. Shared Sub DemonstrateCodeDirectives(ByVal providerName As String, ByVal sourceFileName As String, ByVal assemblyName As String) Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider(providerName) Console.WriteLine("Building the CodeDOM graph...") Dim cu As New CodeCompileUnit() CreateGraph(cu) Dim sw As New StringWriter() Console.WriteLine("Generating code...") provider.GenerateCodeFromCompileUnit(cu, sw, Nothing) Dim output As String = sw.ToString() output = Regex.Replace(output, "Runtime version:[^" + vbCr + vbLf + "]*", "Runtime version omitted for this demo") Console.WriteLine("Dumping source code...") Console.WriteLine(output) Console.WriteLine("Writing source code to file...") Dim s As Stream = File.Open(sourceFileName, FileMode.Create) Dim t As New StreamWriter(s) t.Write(output) t.Close() s.Close() Dim opt As New CompilerParameters(New String() {"System.dll", "System.Xml.dll", "System.Windows.Forms.dll", "System.Data.dll", "System.Drawing.dll"}) opt.GenerateExecutable = False opt.TreatWarningsAsErrors = True opt.IncludeDebugInformation = True opt.GenerateInMemory = True Dim results As CompilerResults Console.WriteLine(("Compiling with " + providerName)) results = provider.CompileAssemblyFromFile(opt, sourceFileName) OutputResults(results) If results.NativeCompilerReturnValue <> 0 Then Console.WriteLine("") Console.WriteLine("Compilation failed.") Else Console.WriteLine("") Console.WriteLine("Demo completed successfully.") End If File.Delete(sourceFileName) End Sub 'DemonstrateCodeDirectives Private Shared HashMD5 As New Guid(&H406EA660, &H64CF, &H4C82, &HB6, &HF0, &H42, &HD4, &H81, &H72, &HA7, &H99) Private Shared HashSHA1 As New Guid(&HFF1816EC, &H65FF, &H4D10, &H87, &HF7, &H6F, &H49, &H63, &H83, &H34, &H60) ' Create a CodeDOM graph. Shared Sub CreateGraph(ByVal cu As CodeCompileUnit) 'ICodeGenerator generator, cu.StartDirectives.Add(New CodeRegionDirective(CodeRegionMode.Start, "Compile Unit Region")) cu.EndDirectives.Add(New CodeRegionDirective(CodeRegionMode.End, String.Empty)) Dim pragma1 As New CodeChecksumPragma() pragma1.FileName = "c:\temp\test\OuterLinePragma.txt" pragma1.ChecksumAlgorithmId = HashMD5 pragma1.ChecksumData = New Byte() {&HAA, &HAA} cu.StartDirectives.Add(pragma1) Dim pragma2 As New CodeChecksumPragma("test.txt", HashSHA1, New Byte() {&HBB, &HBB, &HBB}) cu.StartDirectives.Add(pragma2) Dim ns As New CodeNamespace("Namespace1") ns.Imports.Add(New CodeNamespaceImport("System")) ns.Imports.Add(New CodeNamespaceImport("System.IO")) cu.Namespaces.Add(ns) ns.Comments.Add(New CodeCommentStatement("Namespace Comment")) Dim cd As New CodeTypeDeclaration("Class1") ns.Types.Add(cd) cd.Comments.Add(New CodeCommentStatement("Outer Type Comment")) cd.LinePragma = New CodeLinePragma("c:\temp\test\OuterLinePragma.txt", 300) Dim method1 As New CodeMemberMethod() method1.Name = "Method1" method1.Attributes = method1.Attributes And Not MemberAttributes.AccessMask Or MemberAttributes.Public Dim method2 As New CodeMemberMethod() method2.Name = "Method2" method2.Attributes = method2.Attributes And Not MemberAttributes.AccessMask Or MemberAttributes.Public method2.Comments.Add(New CodeCommentStatement("Method2 Comment")) cd.Members.Add(method1) cd.Members.Add(method2) cd.StartDirectives.Add(New CodeRegionDirective(CodeRegionMode.Start, "Outer Type Region")) cd.EndDirectives.Add(New CodeRegionDirective(CodeRegionMode.End, String.Empty)) Dim field1 As New CodeMemberField(GetType(String), "field1") cd.Members.Add(field1) field1.Comments.Add(New CodeCommentStatement("Field1 Comment")) Dim codeRegionDirective1 As New CodeRegionDirective(CodeRegionMode.Start, "Field Region") field1.StartDirectives.Add(codeRegionDirective1) Dim codeRegionDirective2 As New CodeRegionDirective(CodeRegionMode.End, "") codeRegionDirective2.RegionMode = CodeRegionMode.End codeRegionDirective2.RegionText = String.Empty field1.EndDirectives.Add(codeRegionDirective2) Dim snippet1 As New CodeSnippetStatement() snippet1.Value = " Console.WriteLine(field1)" Dim regionStart As New CodeRegionDirective(CodeRegionMode.End, "") regionStart.RegionText = "Snippet Region" regionStart.RegionMode = CodeRegionMode.Start snippet1.StartDirectives.Add(regionStart) snippet1.EndDirectives.Add(New CodeRegionDirective(CodeRegionMode.End, String.Empty)) ' CodeStatement example Dim constructor1 As New CodeConstructor() constructor1.Attributes = constructor1.Attributes And Not MemberAttributes.AccessMask _ Or MemberAttributes.Public Dim codeAssignStatement1 As New CodeAssignStatement( _ New CodeFieldReferenceExpression( _ New CodeThisReferenceExpression(), "field1"), _ New CodePrimitiveExpression("value1")) codeAssignStatement1.StartDirectives.Add(New CodeRegionDirective(CodeRegionMode.Start, "Statements Region")) cd.Members.Add(constructor1) codeAssignStatement1.EndDirectives.Add(New CodeRegionDirective(CodeRegionMode.End, String.Empty)) method2.Statements.Add(codeAssignStatement1) method2.Statements.Add(snippet1) End Sub 'CreateGraph Shared Sub OutputResults(ByVal results As CompilerResults) Console.WriteLine(("NativeCompilerReturnValue=" + results.NativeCompilerReturnValue.ToString())) Dim s As String For Each s In results.Output Console.WriteLine(s) Next s End Sub 'OutputResults End Class 'CodeDirectiveDemo
System.Object
System.CodeDom.CodeObject
System.CodeDom.CodeDirective
System.CodeDom.CodeChecksumPragma
System.CodeDom.CodeObject
System.CodeDom.CodeDirective
System.CodeDom.CodeChecksumPragma
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.Community Additions
ADD
Show: