我们假设我有以下代码:
using System;
using Microsoft.CSharp;
namespace myNamespace {
static class myClass {
static void Main(string[] args) {
// Code goes here
}
}
}
我们还假设上面的注释被C#中的某些代码替换,这些代码可能需要也可能不需要.NET Framework Class Library中包含的任何名称空间。
此外,为简单起见,我们假设代码不包含任何注释。
我正在使用StringBuilder存储和修改此代码,我想要做的是添加所有必要的“使用”语句。
例如,如果代码使用List,那么我应该添加“using System.Collections.Generic;”声明。这适用于所有可能的“使用”陈述。
我想过使用正则表达式。例如,我可以使用Regex尝试查找System.Collections.Generic命名空间中定义的所有类中的至少一个类,如果它成功找到一个,那么它应该停止搜索并添加'using System.Collections。通用;”言。
但是,考虑到.NET类库中有多少个名称空间以及每个名称空间中定义了多少个类和接口,让我觉得这种方法会导致代码大而慢。
对此有更好,更快,更智能的方法吗?