ManagementClass.GetStronglyTypedClassCodeを使用して、CodeTypeDeclarationインスタンスへの参照を取得しています。生成されたクラス名を変更したいのですが、このメソッドではこれを許可していません(私が知る限り)。CodeTypeDeclaration.Nameプロパティを変更しようとしましたが、コンストラクター名などは変更されないため、C#コンパイラはクラスのコンパイル時にエラーを返します。クラスで簡単な検索/置換を行うことはできますが、これは信頼できないようです。CodeTypeDeclarationインスタンスで表されるC#クラスの名前を確実に変更する方法はありますか?
コードはそれほど多くありませんが、関連するスニペットは次のとおりです(PowerShellを使用しています)。
$WmiClassName = 'Win32_Process'
$ClassName = 'MyProcess'
$WmiClass = New-Object `
System.Management.ManagementClass($WmiClassName)
$classCode = $WmiClass.GetStronglyTypedClassCode($true, $false)
$classCode.Name = $ClassName # This doesn't change constructor names