2013-07-15 6 views
3

Я пытаюсь создать библиотеку классов, используя некоторые классы, которые я создал в другом проекте. Один из классов использует образы и нуждается в пространстве имен System.Drawing. Однако, когда я пытаюсь скопировать код из моего проекта в новый класс в моей библиотеке классов, я получаю сообщение об ошибке говорящего изображения объект не существует в текущем контексте иnamespace не работает в библиотеке классов C#

типа или пространство имен имя «Рисование» не существует в системе пространства имен (вам не хватает директивы использования или ссылки на сборку?)

Он отлично работает в другом классе как часть другого проекта. Почему это должно быть?

+2

Вы добавили System.Drawing сборки Refernce в свой проект, в котором новый класс проживает? – Kurubaran

+0

Можете ли вы поместить код проекта вашей библиотеки. – loop

ответ

11

Удостоверьтесь, что System.Drawing добавлен в ссылки на сборку библиотеки. По умолчанию для библиотек классов не добавляются сборки Windows Forms.

1

Да Проблема заключается в ссылках. Если вы перейдете в свой обозреватель решений и развернете его, вы увидите вложенную папку под названием «Ссылки». Здесь вы добавляете ссылки, необходимые в вашем проекте. Чтобы добавить их, просто щелкните правой кнопкой мыши по папке и выберите команду Добавить ссылку. Когда-то здесь вам понадобится ссылка на вкладке .Net.

-1
using System.Drawing; 

Запишите это в начало своего класса. то также, если u получите ошибку, щелкните правой кнопкой мыши по ссылке и добавьте ссылку на System.Drawing в свой проект.

+0

Он ясно говорит, что компилятор жалуется, когда пытается использовать пространство имен System.Drawing. Неважно, есть ли «использование» в верхней части файла или он полностью квалифицирует имена. –

+0

в сообщении об ошибке, говорящем, что ... вам не хватает директивы использования или ссылки на сборку? SO его либо нет ссылки на директиву или ссылку на сборку? Исправьте меня, если я ошибаюсь ... – Vasanth

+0

Тот факт, что компилятор жалуется на '' Drawing' * type или namespace *, который не найден, указывает на то, что он либо уже имеет оператор 'use' в заголовке, либо что он использует' Image', например 'System.Drawing.Image'. В этом случае ему даже не нужна инструкция 'using'. Компилятор не знает, является ли это классом или пространством имен, поэтому он предлагает добавить «использование» в случае, если «Drawing» был классом или добавил ссылку, в случае, если «Drawing» является пространством имен. –

0

В случае, если конкретная ссылка .NET не добавляется по умолчанию, сделайте это вручную:

screenshot

Смежные вопросы