0

実際の C# .cs ファイルを読み取り、そのソース ファイルのどのプロシージャに "int userID" という名前のパラメーターがないかを特定しようとする Windows アプリを作成する必要があります (コード チェッカーのようなものです)。

「procedureName」という名前のプロパティと「parameterList」という名前の別のプロパティを持つある種のオブジェクトにC#ファイルを既に読み込むものはありますか...クエリできますか??

そうでない場合、それを達成するための最良の方法は何ですか?

4

1 に答える 1

2

解決策を提供できる NRefactory を使用することをお勧めします。以下は、名前が bob のファイル内のすべてのメソッドを検索する例です。

CSharpParser parser = new CSharpParser();
SyntaxTree syntaxTree = parser.Parse(@"namespace Test
    {

        public class TestClass
        {
            public void Method(string bob)
            {
            }
        }
    }");

var result = syntaxTree.Descendants.OfType<MethodDeclaration>().Where(x => x.Descendants.OfType<ParameterDeclaration>().Any(y => y.NameToken.Name == "bob"));

if (result.Any())
{
    Console.WriteLine("We Win");
}
于 2013-04-23T11:04:24.937 に答える