Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Persistence/Core/TypeStringBuilder.cs @ 1518

Last change on this file since 1518 was 1454, checked in by epitzer, 15 years ago

merge persistence exploration branch into trunk as HL plugin. (#506)

File size: 1010 bytes
Line 
1using System;
2using System.Text;
3
4namespace HeuristicLab.Persistence.Core {
5
6  public static class TypeStringBuilder {
7
8    private static void BuildVersionInvariantName(Type type, StringBuilder sb) {   
9      sb.Append(type.Namespace);
10      sb.Append('.');
11      sb.Append(type.Name);
12      if (type.IsGenericType) {
13        sb.Append("[");
14        Type[] args = type.GetGenericArguments();
15        for ( int i = 0; i<args.Length; i++ ) {
16          sb.Append("[");
17          BuildVersionInvariantName(args[i], sb);
18          sb.Append("]");
19          sb.Append(",");
20        }
21        if (args.Length > 0)
22          sb.Remove(sb.Length - 1, 1);
23        sb.Append("]");
24      }           
25      sb.Append(", ");
26      sb.Append(type.Assembly.GetName().Name);     
27    }
28
29    public static string VersionInvariantName(this Type type) {
30      StringBuilder sb = new StringBuilder();
31      BuildVersionInvariantName(type, sb);
32      return sb.ToString();
33    }
34  } 
35 
36}
Note: See TracBrowser for help on using the repository browser.