CodeDom - связывание нескольких классов в одной сборке - PullRequest
0 голосов
/ 20 июля 2011

У меня есть приложение на C #, которое я пытаюсь воссоздать с помощью CodeDom.Это приложение имеет четыре класса внутри.Если бы я пошел в этот каталог приложений, я бы нашел файл проекта (App.csproj), и если бы я запустил этот файл проекта, все четыре класса загрузились бы вместе.Кроме того, если бы я собирал это приложение, все четыре класса были бы построены вместе.

Мой вопрос: как же я могу создать эту функцию с помощью CodeDom?

Я успешно создал один из четырех классов с использованием CodeDom, но как это сделать?Я собираюсь создать следующие три класса (и связать их) с первым классом, который я уже создал?

Я знаю, что это может показаться странным, но я объясню больше, если это необходимо.

1 Ответ

0 голосов
/ 20 июля 2011

Если классы находятся в одном и том же пространстве имен, вы можете добавить их все к одному CodeNamespace объекту и сгенерировать код из этого.

Если в разных пространствах имен вы можете добавить пространство имен других классов к первому классу, добавив ссылку на пространства имен другого класса на объект пространства имен, в котором вы работаете: -

// Добавить пространство имен другого класса к текущему объекту пространства имен defaultNameSpace.Imports.Add (new CodeNamespaceImport ("Project.Namespace.Namespace"));

Где defaultNameSpace - это тип CodeNamespace .Первый созданный вами класс добавляется в этот объект CodeNamespace, как показано ниже, и затем из него генерируется код: -

defaultNameSpace.Types.Add (mainClass);

mainClass является типом CodeTypeDeclaration .

Надеюсь, это поможет.

...