CodeChecksumPragma クラス
アセンブリ: System (system.dll 内)

<SerializableAttribute> _ <ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ <ComVisibleAttribute(True)> _ Public Class CodeChecksumPragma Inherits CodeDirective
[SerializableAttribute] [ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [ComVisibleAttribute(true)] public class CodeChecksumPragma : CodeDirective
[SerializableAttribute] [ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] [ComVisibleAttribute(true)] public ref class CodeChecksumPragma : public CodeDirective

CodeChecksumPragma クラスは、CodeDirective クラスから継承され、CodeDirectiveCollection に格納できます。CodeChecksumPragma を使用すると、生成されたファイルを含むソース ファイルを一意に識別できます。

CodeChecksumPragma クラスを使用する方法を次のコード例に示します。
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
using System.CodeDom; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Reflection; using System.Text.RegularExpressions; using System.Globalization; namespace System.CodeDom { class CodeDirectiveDemo { static void Main() { try { DemonstrateCodeDirectives("cs", "ChecksumPragma.cs", "ChecksumPragmaCS.exe"); } catch (Exception e) { Console.WriteLine("Unexpected Exception:" + e.ToString()); } } // Create and compile code containing code directives. static void DemonstrateCodeDirectives(string providerName, string sourceFileName, string assemblyName) { CodeDomProvider provider = CodeDomProvider.CreateProvider(providerName); Console.WriteLine("Building the CodeDOM graph..."); CodeCompileUnit cu = new CodeCompileUnit(); CreateGraph(cu); StringWriter sw = new StringWriter(); Console.WriteLine("Generating code..."); provider.GenerateCodeFromCompileUnit(cu, sw, null); string output = sw.ToString(); output = Regex.Replace(output, "Runtime Version:[^\r\n]*", "Runtime Version omitted for demo"); Console.WriteLine("Dumping source code..."); Console.WriteLine(output); Console.WriteLine("Writing source code to file..."); Stream s = File.Open(sourceFileName, FileMode.Create); StreamWriter t = new StreamWriter(s); t.Write(output); t.Close(); s.Close(); CompilerParameters opt = 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; CompilerResults results; Console.WriteLine("Compiling with " + providerName); results = provider.CompileAssemblyFromFile(opt, sourceFileName); OutputResults(results); if (results.NativeCompilerReturnValue != 0) { Console.WriteLine(""); Console.WriteLine("Compilation failed."); } else { Console.WriteLine(""); Console.WriteLine("Demo complete."); } File.Delete(sourceFileName); } private static Guid HashMD5 = new Guid(0x406ea660, 0x64cf, 0x4c82, 0xb6, 0xf0, 0x42, 0xd4, 0x81, 0x72, 0xa7, 0x99); private static Guid HashSHA1 = new Guid(0xff1816ec, 0xaa5e, 0x4d10, 0x87, 0xf7, 0x6f, 0x49, 0x63, 0x83, 0x34, 0x60); // Create a CodeDOM graph. static void CreateGraph( CodeCompileUnit cu) { cu.StartDirectives.Add(new CodeRegionDirective(CodeRegionMode.Start , "Compile Unit Region")); cu.EndDirectives.Add(new CodeRegionDirective(CodeRegionMode.End , string.Empty)); CodeChecksumPragma pragma1 = new CodeChecksumPragma(); pragma1.FileName = "c:\\temp\\test\\OuterLinePragma.txt"; pragma1.ChecksumAlgorithmId = HashMD5; pragma1.ChecksumData = new byte[] { 0xAA, 0xAA }; cu.StartDirectives.Add(pragma1); CodeChecksumPragma pragma2 = new CodeChecksumPragma("test.txt", HashSHA1, new byte[] { 0xBB, 0xBB, 0xBB }); cu.StartDirectives.Add(pragma2); CodeNamespace ns = 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")); CodeTypeDeclaration cd = 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); CodeMemberMethod method1 = new CodeMemberMethod(); method1.Name = "Method1"; method1.Attributes = (method1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public; CodeMemberMethod method2 = new CodeMemberMethod(); method2.Name = "Method2"; method2.Attributes = (method2.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public; method2.Comments.Add(new CodeCommentStatement("Method 2 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)); CodeMemberField field1 = new CodeMemberField(typeof(String), "field1"); cd.Members.Add(field1); field1.Comments.Add(new CodeCommentStatement("Field 1 Comment")); CodeRegionDirective codeRegionDirective1 = new CodeRegionDirective(CodeRegionMode.Start , "Field Region"); field1.StartDirectives.Add(codeRegionDirective1); CodeRegionDirective codeRegionDirective2 = new CodeRegionDirective(CodeRegionMode.End , ""); codeRegionDirective2.RegionMode = CodeRegionMode.End; codeRegionDirective2.RegionText = string.Empty; field1.EndDirectives.Add(codeRegionDirective2); CodeSnippetStatement snippet1 = new CodeSnippetStatement(); snippet1.Value = " Console.WriteLine(field1);"; CodeRegionDirective regionStart = 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 CodeConstructor constructor1 = new CodeConstructor(); constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public; CodeStatement codeAssignStatement1 = 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); } static void OutputResults(CompilerResults results) { Console.WriteLine("NativeCompilerReturnValue=" + results.NativeCompilerReturnValue.ToString()); foreach (string s in results.Output) { Console.WriteLine(s); } } } }

System.CodeDom.CodeObject
System.CodeDom.CodeDirective
System.CodeDom.CodeChecksumPragma


Windows 98, Windows 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
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CodeChecksumPragma コンストラクタ ()
アセンブリ: System (system.dll 内)


CodeChecksumPragma コンストラクタを使用する方法を次のコード例に示します。このコード例は、CodeChecksumPragma クラスのトピックで取り上げているコード例の一部分です。

Windows 98, Windows 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
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CodeChecksumPragma コンストラクタ (String, Guid, Byte[])
アセンブリ: System (system.dll 内)

Dim fileName As String Dim checksumAlgorithmId As Guid Dim checksumData As Byte() Dim instance As New CodeChecksumPragma(fileName, checksumAlgorithmId, checksumData)
public: CodeChecksumPragma ( String^ fileName, Guid checksumAlgorithmId, array<unsigned char>^ checksumData )
public function CodeChecksumPragma ( fileName : String, checksumAlgorithmId : Guid, checksumData : byte[] )


CodeChecksumPragma コンストラクタを使用する方法を次のコード例に示します。このコード例は、CodeChecksumPragma クラスのトピックで取り上げているコード例の一部分です。

Windows 98, Windows 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
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CodeChecksumPragma コンストラクタ

名前 | 説明 |
---|---|
CodeChecksumPragma () | CodeChecksumPragma クラスの新しいインスタンスを初期化します。 |
CodeChecksumPragma (String, Guid, Byte[]) | ファイル名、チェックサム アルゴリズムを表す GUID、およびチェックサム データを表すバイト ストリームを使用して、CodeChecksumPragma クラスの新しいインスタンスを初期化します。 |

CodeChecksumPragma プロパティ

名前 | 説明 | |
---|---|---|
![]() | ChecksumAlgorithmId | 使用するチェックサム アルゴリズムを識別する GUID を取得または設定します。 |
![]() | ChecksumData | チェックサムの計算に使用するデータの値を取得または設定します。 |
![]() | FileName | チェックサム ファイルへのパスを取得または設定します。 |
![]() | UserData | 現在のオブジェクトのユーザー定義可能なデータを取得または設定します。 ( CodeObject から継承されます。) |

CodeChecksumPragma メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

CodeChecksumPragma メンバ
コード チェックサム プラグマのコード エンティティを表します。
CodeChecksumPragma データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | ChecksumAlgorithmId | 使用するチェックサム アルゴリズムを識別する GUID を取得または設定します。 |
![]() | ChecksumData | チェックサムの計算に使用するデータの値を取得または設定します。 |
![]() | FileName | チェックサム ファイルへのパスを取得または設定します。 |
![]() | UserData | 現在のオブジェクトのユーザー定義可能なデータを取得または設定します。(CodeObject から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- CodeChecksumPragmaのページへのリンク