Как правильно использовать 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. Но тогда эти методы являются статическими, и я не должен раскрывать статические методы. Я также мог бы сделать их закрытыми и предоставлять открытые методы, которые перенаправляют на статический, но тогда имена методов будут конфликтовать.
Какой рекомендуемый способ справиться с этой ситуацией?