Изменить сгенерированное имя класса 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