Вы заявляете в комментариях и тегах, что это динамически компилируется другим приложением. Следовательно, вероятно, что это другое приложение не включает System.Drawing.dll
в качестве ссылки при выполнении компиляции, и, следовательно, тип не разрешен. Недостаточно просто указать using System.Drawing
, сборка, определяющая это пространство имен и его типы, также должна быть передана компилятору.
В коде это делается с использованием экземпляра CompilerParameters
, переданного через один из вызовов CompileAssemblyFrom...
в экземпляр CodeDomProvider
, который выполняет компиляцию (в этом случай, CSharpCodeProvider
). Коллекция CompilerParameters.ReferencedAssemblies
указывает компилятору, какие сборки следует просматривать при попытке выполнить разрешение типа.
Обновление
Попробуйте явно добавить mscorlib
к ссылкам.
Кроме того, я не знаю, связано ли это с этим, но, как вы упомянули сервер (это какой-то сервис?), MSDN сообщает :
Классы в системе. Рисование
пространство имен не поддерживается для использования
в службе Windows или ASP.NET.
Попытка использовать эти классы из
в одном из этих типов приложений
может вызвать неожиданные проблемы, такие как
как снижение производительности обслуживания и
исключения во время выполнения. Для поддерживаемых
альтернатива, см. Windows Imaging
Компоненты.
Я бы сказал, что это квалифицируется как неожиданная проблема, хотя я не ожидал бы, что проблемы проявятся во время процесса компиляции, а скорее при выполнении кода. Тем не менее, они на самом деле не указывают это в документации, так что это может относиться к использованию System.Drawing.dll
в качестве ссылки в целом.