Я реорганизую большую и сложную базу кода в .NET, которая сильно использует API P/Invoke для Win32. Структура проекта не самая большая, и я нахожу нахождении DllImport-операторов повсеместно, очень часто дублируется для одной и той же функции, а также объявляется различными способами:
Директивы и методы импорта иногда объявляются публичными, иногда частными, иногда статическими, а иногда и методами экземпляра. Мое беспокойство заключается в том, что рефакторинг может иметь непреднамеренные последствия, но это может быть неизбежным.
Есть ли документальные рекомендации, которые я могу последовать, что может помочь мне?
Мой инстинкт состоит в том, чтобы организовать статический/общий класс API Win/P/Invoke API, в котором перечислены все эти методы и связанные константы в одном файле... РЕДАКТИРОВАТЬ В DLL пользователя32 содержится более 70 импортных файлов.
(База кода состоит из более чем 20 проектов с большим количеством передачи сообщений Windows и сквозных вызовов. Это также проект VB.NET, обновленный с VB6, если это имеет значение.)