C# 如何在c中获取整个解决方案中的类的名称#

C# 如何在c中获取整个解决方案中的类的名称#,c#,C#,我有一个这种类型的代码,但我想得到“类名”,比如我的解决方案代码中有多少类将计算类的数量,并通过c#中的代码获得名称。您试图做的事情不会涉及ProcessStartInfo。有两种方法可以实现这一点:如果已编译,则加载程序集并使用反射检查程序集(someAssembly.GetTypes()将是一个良好的开始)。或者,对于检查源代码(未编译),可以使用Roslyn CTP加载项目/解决方案/类文件,并检查分析树。您尝试执行的操作将不涉及ProcessStartInfo。有两种方法可以实现这一点:

我有一个这种类型的代码,但我想得到“类名”,比如我的解决方案代码中有多少类将计算类的数量,并通过c#中的代码获得名称。

您试图做的事情不会涉及
ProcessStartInfo
。有两种方法可以实现这一点:如果已编译,则加载程序集并使用反射检查程序集(
someAssembly.GetTypes()
将是一个良好的开始)。或者,对于检查源代码(未编译),可以使用Roslyn CTP加载项目/解决方案/类文件,并检查分析树。

您尝试执行的操作将不涉及
ProcessStartInfo
。有两种方法可以实现这一点:如果已编译,则加载程序集并使用反射检查程序集(
someAssembly.GetTypes()
将是一个良好的开始)。或者,为了检查源代码(未编译),可以使用Roslyn CTP加载项目/解决方案/类文件,并检查分析树。

如果我没有错,您希望搜索解决方案中存在的所有类并获取类名

这是伪代码

1-在所有解决方案中搜索*.cs文件

ProcessStartInfo info = new ProcessStartInfo(@"D:\\ss\\Class1.cs");
2-遍历所有*.cs文件并搜索以下模式

string[] files = System.IO.Directory.GetFiles(path, "*.txt");
下面是您可以使用的代码

namespace [WhatEver the name is]
{
    public class [Class Name]
foreach(文件中的字符串路径)
{
string[]lines=System.IO.File.ReadAllLines(路径);
对于(int i=0;i
如果我没有错,您希望搜索解决方案中存在的所有类并获取类名

这是伪代码

1-在所有解决方案中搜索*.cs文件

ProcessStartInfo info = new ProcessStartInfo(@"D:\\ss\\Class1.cs");
2-遍历所有*.cs文件并搜索以下模式

string[] files = System.IO.Directory.GetFiles(path, "*.txt");
下面是您可以使用的代码

namespace [WhatEver the name is]
{
    public class [Class Name]
foreach(文件中的字符串路径)
{
string[]lines=System.IO.File.ReadAllLines(路径);
对于(int i=0;i
是否要枚举解决方案中的所有类?这和ProcessStartInfo有什么关系?嗯,为解决方案中的每个类文件使用visual studio肯定不是答案……您需要代码中使用的文件名或类名?@ryadavilli是的,我想获取解决方案中的类名称和类名id Class1,还有一个类Class2,所以我只想通过c#中的代码找到类名。您呢要枚举解决方案中的所有类吗?这和ProcessStartInfo有什么关系?嗯,为解决方案中的每个类文件使用visual studio肯定不是答案……您需要代码中使用的文件名或类名?@ryadavilli是的,我想获得解决方案中的类名称和类名id Class1,还有一个类Class2,所以我只想通过c#中的代码找到类名。这是一个非常幼稚的方法。(1) 可以有许多名称空间(2)类不必直接位于名称空间下的一行(3)并非所有类都是公共的(4)c#不考虑行,一条语句可以跨多行传播。是的,你说得对。实际上,我在我的一个项目中采用了这种方法。我首先研究了应用程序的整个结构。成功了。根据描述,他也可以使用上述技巧。@Behroz我必须给出哪种类型的[FILE\u NAME\u HERE]。@Behroz我在“string[]lines=System.IO.FILE.ReadAllLines(path);”行中遇到错误。错误是:对路径“D:\ss”的访问被拒绝。我已经给出了一条正确的道路。所以请help@Behroz:我错了,你是对的,你的代码正在运行,我得到了名为thnks的类。这是一种非常幼稚的方法。(1) 可以有许多名称空间(2)类不必直接位于名称空间下的一行(3)并非所有类都是公共的(4)c#不考虑行,一条语句可以跨多行传播。是的,你说得对。实际上,我在我的一个项目中采用了这种方法。我首先研究了应用程序的整个结构。成功了。根据描述,他也可以使用上述技巧。@Behroz我必须给出哪种类型的[FILE\u NAME\u HERE]。@Behroz我在“string[]lines=System.IO.FILE.ReadAllLines(path);”行中遇到错误。错误是:对路径“D:\ss”的访问被拒绝。我已经给出了一条正确的道路。所以请help@Behroz:我错了,你是对的,你的代码正在运行,我得到的类名为thnks。