6

T4Template と codeDOM を使用して、次のコードを使用してアセンブリを作成しています。

CompilerParameters Params = new CompilerParameters();
            Params.GenerateExecutable = true;
            Params.ReferencedAssemblies.Add("System.dll");
            Params.OutputAssembly = "myfile.exe";

            RuntimeTextTemplate1 RTT = new RuntimeTextTemplate1();
            string Source = RTT.TransformText();

            CompilerResults Create = new CSharpCodeProvider().CompileAssemblyFromSource(Params, Source);

テンプレートは次のようになります (しばらくの間):

<#@ template language="C#" #>
namespace Application
{
  class Program
  {
     static void Main()
     {
       byte[] buffer = new byte[1024];
       //And some code for creating a file with the bytes in the buffer.
     }
  }
}

メインアプリケーションには、特定のアプリケーションのいくつかのバイトを含むバイト配列があります。これらのバイトは、実行時に配列にロードされます。

私の質問は:

  • データ (バイト) を含むバイト配列を ( ) 内の T4Template に渡すにはどうすればよいbyte[] buffer = new byte[1024];ので、テンプレートに記述されたコードを使用してアセンブリを作成すると、配列にバイトが含まれる必要があります。
4

1 に答える 1