C# implements recursive lookup file function source code