Как добавить файл CS в существующий проект C #? - PullRequest
6 голосов
/ 23 мая 2009

Некоторое время назад я написал небольшую программу для Microsoft Visual C # 2008 Express Edition. В него включен файл с именем «ProblemReport.cs» с собственной формой и классом ProblemReport.

Я пишу новую программу и хочу повторно использовать этот код. (все еще работает в MS Vis C # 2008 express)

В моей новой программе в обозревателе решений C # я щелкнул правой кнопкой мыши по своему проекту и выбрал «Добавить существующий элемент ...», затем я добавил ProblemReport.cs, ProblemReport.designer.cs и ProblemReport.resx.

Какие шаги мне здесь не хватает? Когда я возвращаюсь к главной форме в моей новой программе и пытаюсь создать экземпляр нового экземпляра «ProblemReport», я получаю сообщение об ошибке:

"Не удалось найти тип имени пространства имен 'ProblemReport' (отсутствует директива using или ссылка на сборку?)"

Очевидно - я должен сделать что-то еще, чтобы заставить это работать ... просто не уверен, что это такое!

-Adeena

Ответы [ 4 ]

9 голосов
/ 23 мая 2009

Убедитесь, что все ваши файлы CS находятся в одном пространстве имен. Похоже, импортированные (ие) не живут с вашим новым проектом.

Убедитесь, что:

namespace MyProgram //same as the rest of your project
{

    public class ProblemReport
    {
    }

}

тем временем в других ваших файлах .cs ....

namespace MyProgram 
{

     public class SomeClass
     {
           public void DoSomething()
           {
               ProblemReport. //you should get intellisense here.
           }
      }

}
4 голосов
/ 23 мая 2009

Возможно, вам лучше распаковать ProblemReport в его собственную библиотеку классов (отдельную dll), чтобы у вас была только одна копия кода.

Создайте новый проект библиотеки классов, скопируйте в него ProblemReport.cs, ProblemReport.designer.cs и ProblemReport.resx и обновите пространство имен по мере необходимости. Постройте это и поместите dll где-нибудь в центре. Затем добавьте ссылку на эту библиотеку классов из ваших двух программ.

2 голосов
/ 23 мая 2009

Вы должны добавить директиву using в ваш новый проект -

using ProblemReport;

Тогда вы сможете получить доступ к классу ProblemReport. Конечно, это зависит от имени пространства имен файла ProblemReport.cs.

1 голос
/ 23 мая 2009

Когда вы его создали, вероятно, он использовал другое пространство имен, так как они генерируются из имени проекта по умолчанию.

В файле .CS соответствует ли пространство имен остальной части вашего проекта?

...