Редактирование нескольких классов в коде Visual Studio - PullRequest
1 голос
/ 27 мая 2020

Мне было трудно найти соответствующую информацию в Интернете по этому поводу, и я начинаю думать, что это может быть текущее ограничение PowerShell или PSScriptAnalyzer. Я не могу найти никаких подходящих вопросов, так что, надеюсь, вместо решения кто-нибудь сможет объяснить, почему это невозможно.

При работе над новым модулем с отдельными файлами классов любой класс с базовым классом в другом файле не может найти тип.

Class1.Class.ps1

class Class1
{
    # Do stuff
}

Class2.Class.ps1

class Class2 : Class1 # Type not found
{
    # Do stuff
}

TypeNotFound

Unable to find type [Class1].PowerShell
Ignoring 'TypeNotFound' parse error on type 'Class1'. Check if the specified type is correct. This can also be due the type not being known at parse time due to types imported by 'using' statements.PSScriptAnalyzer(TypeNotFound)

Тип все еще не найден, когда Я устанавливаю каталог, загружаю классы в консоль и многое другое.

Конечно, когда я импортирую модуль, все работает нормально. Я знаю , как расставить точки source или импортировать классы, используя using module, и могу видеть, что это то, на что намекает сообщение, но это будет необходимо только для редактирования, поскольку когда пользователь импортирует мой файл psd1, он dot - источники классов, чтобы функции могли их использовать. При редактировании возникают ложные проблемы в редакторе, поскольку этот список невероятно полезен для выявления опечаток или проблем с лучшими практиками.

Если все классы находятся в одном файле, конечно, можно увидеть их, но с их количеством в решении легче разделить их и работать над ними индивидуально, особенно для будущих участников на работе.

Я также работаю над C# в VS C, и это отлично работает, пока у вас загружено правильное решение. Было бы здорово, если бы PowerShell работал аналогично, возможно, с манифестом модуля. Надеюсь, я не упустил здесь ничего глупого, я считаю, что это особенность класса c, потому что даже загрузка функций из других файлов в терминале позволяет Intellisense подбирать их.

У кого-нибудь есть идеи? Я бы предпочел не игнорировать ошибки, но если это так, мне придется постараться, чтобы мой мозг не дергался при словах, подчеркнутых красным))

...