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];
ので、テンプレートに記述されたコードを使用してアセンブリを作成すると、配列にバイトが含まれる必要があります。