【发布时间】:2017-05-16 09:08:07
【问题描述】:
如何将以下循环放入一个 Linq 查询中?我试图实现的最终结果是获得这些类方法中的语句列表。
上下文: 对于每个类,使用类名获取相应的方法。使用类名/方法名的每种组合,我都可以调用元数据来获取源代码(字符串)。然后我编译那个字符串和那个Results in Method 对象,它有和IEnumerable 包含该方法的所有代码语句。所以我要获取所有类和方法的语句列表。
IXppcMetadataProvider serviceMetadataProvider = Program.getXppcMetadataProvider();
IEnumerable<string> classNames = serviceMetadataProvider.ClassNames();
MultipassAdministrator multipassAdmin = new MultipassAdministrator(serviceMetadataProvider);
foreach (string className in classNames)
{
IEnumerable<string> classMethods = serviceMetadataProvider.ClassMethods(className);
foreach (string methodName in classMethods)
{
string source = serviceMetadataProvider.GetClassMethodSource(className, methodName);
Method method = multipassAdmin.CompileSingleMethod(source) as Method;
if (method != null)
{
foreach (Statement statement in method.Statements)
{
System.Console.WriteLine(statement.ToString());
}
}
}
}
【问题讨论】: