Как получить все методы в классе и сохранить в файле с помощью DXCore?

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

   LanguageElement   parsedFile = parser.ParseFile(fileLocation)  

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

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

  DevExpress.CodeRush.StructuralParser.TypeDeclaration.AllMethods

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

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

2 ответа

Решение

Вы можете привести свою ссылку "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

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

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

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

Другие вопросы по тегам