I am implementing a syntax highlighter using C# windows forms, and would like to get a list of all names, I know that this should be done manually, adding keywords and names but i was wondering if there is a function in C# that could help me do this.
            Asked
            
        
        
            Active
            
        
            Viewed 4,366 times
        
    3
            
            
        - 
                    1What are "_C# Classes Names_"? Can you provide an example, maybe with pseudo code to show what you need? – Tim Schmelter Jun 06 '12 at 07:58
- 
                    Like DataTable, ViewState, GridView, .............etc. – yahya kh Jun 06 '12 at 07:59
- 
                    So you need to show the class' name in a syntax highlighter when the user enters the class' name?? What are you really trying to achieve? – Tim Schmelter Jun 06 '12 at 08:02
- 
                    _"I am implementing a syntax highlighter using C# windows forms"_ Why don't you write a Visual Studio extension? It's a lot easier than building your own syntax highlighter. – CodeCaster Jun 06 '12 at 08:03
- 
                    Can you explain "CodeCaster", i am trying to do something like this http://stackoverflow.com/questions/10892884/formating-c-sharp-code-in-text. – yahya kh Jun 06 '12 at 08:05
- 
                    I think a syntax highlighter is based on the syntax: so instead of hardcoding class names, you might just want to know when to expect one, and highlight accordingly? – Nanne Jun 06 '12 at 08:06
4 Answers
3
            You will have to use the reflection to get the names of classes in a dll.
// Using Reflection to get information from an Assembly:
System.Reflection.Assembly o = System.Reflection.Assembly.Load("mscorlib.dll");
var types = o.GetTypes();
 
    
    
        Asif Mushtaq
        
- 13,010
- 3
- 33
- 42
- 
                    
- 
                    2let me google that for you http://stackoverflow.com/questions/79693/getting-all-types-in-a-namespace-via-reflection - see Aku's great answer, +1 it! – SpaceBison Jun 06 '12 at 08:01
2
            
            
          Assembly asm = Assembly.GetExecutingAssembly();
  List<string> namespaceList = new List<string>();
  List<string> returnList = new List<string>();
  foreach (Type type in asm.GetTypes())
{
    if (type.Namespace == nameSpace)
        namespaceList.Add(type.Name);
}
    foreach (String className in namespaceList)
    returnList.Add(className);
    return returnList;
 
    
    
        Rachana
        
- 121
- 1
- 9
1
            
            
        You can get the list for all assemblies in C#.NET using reflection.
Example :
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine(type.FullName);
}
 
    
    
        Rajesh Subramanian
        
- 6,400
- 5
- 29
- 42
 
    