Согласно MSDN, не рекомендуется использовать классы в System.Drawing пространства имен в службе Windows или службе ASP.NET. Теперь я разрабатываю библиотеку классов, которым может потребоваться доступ к этому конкретному пространству имен (для измерения шрифтов), но не может быть гарантировано, что хост-процесс не является сервисом.
Теперь существует менее оптимальный метод, на который я могу вернуться, если System.Drawing недоступен, но если это возможно, я предпочел бы использовать классы в System.Drawing. Так что я хотел бы сделать, это определить в runtume, если System.Drawing безопасен или нет, и если это так, используйте его, в противном случае вернитесь к субоптимальной опции.
Моя проблема: Как я могу определить, безопасно ли использовать System.Drawing?
Думаю, мне нужно
- Определите, является ли текущий процесс службой Windows или службой ASP.NET
- Определить, доступен ли GDI
- Или, может быть, есть способ самому спросить System.Drawing.dll, если безопасно использовать
К сожалению, я не могу придумать способ реализации любого из этих подходов. Кто-нибудь знает?