Изменить сгенерированное имя класса C # - PullRequest
0 голосов
/ 30 сентября 2010

Я использую 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 Ответ

0 голосов
/ 01 октября 2010

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

...