Внедрение зависимостей .NET Windows API - PullRequest
0 голосов
/ 18 января 2019

Как правильно использовать Windows API в дизайне рекомендаций Dependency Injection? Так как он взаимодействует с внешним миром, мне нужно абстрагировать эти вызовы, чтобы иметь возможность имитировать их для модульного тестирования.

Давайте возьмем эти 2 функции.

[DllImport("user32.dll")]
internal static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool SetForegroundWindow(IntPtr hWnd);

Я могу создать класс WindowsApiService. Но тогда эти методы являются статическими, и я не должен раскрывать статические методы. Я также мог бы сделать их закрытыми и предоставлять открытые методы, которые перенаправляют на статический, но тогда имена методов будут конфликтовать.

Какой рекомендуемый способ справиться с этой ситуацией?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...