Как получить все методы в классе и сохранить в файле с помощью DXCore? - PullRequest
3 голосов
/ 14 апреля 2011

Я пытаюсь написать простое консольное приложение для учеников с открытым API-интерфейсом Dxcore. Я проанализировал файл C #, используя следующую строку кода.

   LanguageElement   parsedFile = parser.ParseFile(fileLocation)  

и я хочу попробовать несколько простых вещей в этом файле. Поэтому я пытался получить все методы в этом файле и его параметры и поместить их в список.

Я видел свойство, которое могло бы это сделать, но не могло его использовать.

  DevExpress.CodeRush.StructuralParser.TypeDeclaration.AllMethods

Также было бы полезно несколько ссылок на документацию по разработке плагинов Dxcore.

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 14 апреля 2011

Вы можете привести свою ссылку "parserFile" к экземпляру типа SourceFile, а затем использовать код, подобный следующему:

  SourceFile parsedFile = parser.ParseFile(fileLocation) as SourceFile;
  if (parsedFile != null)
    foreach (TypeDeclaration type in parsedFile.AllTypes)
      foreach (Method method in type.AllMethods)
        foreach (Param param in method.Parameters)
        {
          // Do something...
        }

Эта ссылка, вероятно, может быть немного полезной: Как перечислить элементы решения и исходного кода, используя DXCore

2 голосов
/ 14 апреля 2011

Я полагаю, вы ищете следующий код.

SourceFile parsedFile = CodeRush.Language.Parse(fileName);
foreach (TypeDeclaration type in parsedFile.AllTypes)
{
    foreach (Method method in type.AllMethods)
    {
        // do stuff
    }
}

Обратите внимание на изменение с LanguageElement на SourceFile .

...