Изменить сгенерированное имя класса C#

Я использую ManagementClass.GetStronglyTypedClassCode, чтобы получить ссылку на экземпляр CodeTypeDeclaration. Я хотел бы изменить имя сгенерированного класса, и этот метод не позволяет этого (насколько я могу судить). Я пытался изменить свойство CodeTypeDeclaration.Name, но это не меняет имена конструкторов и т. Д., Поэтому компилятор C# возвращает ошибки при компиляции класса. Я мог бы сделать простой поиск / замену в классе, но это кажется ненадежным. Есть ли способ надежно изменить имя класса C#, представленного экземпляром CodeTypeDeclaration?

Там не так много кода, но вот соответствующий фрагмент (я использую 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

1 ответ

Решение

Я думаю, что вы можете переименовать конструкторы вручную, перечислив Members собственность и изменение Name свойство для членов типа CodeConstructor

Другие вопросы по тегам