Как разобрать имена универсальных типов C #?

Как я могу разобрать C # -стиль универсальных имен типов в форматеList или жеDictionary или даже более сложныйDictionary, Предположим, что эти имена являются строками и могут фактически не представлять существующие типы. Он должен так же легко быть в состоянии разобратьBogusClass, Чтобы быть ясным, я не заинтересован в разборе внутренних имен типов .NET форматаList`1[[System.Int32]], но фактические имена типов C #, как они будут отображаться в исходном коде, с или без квалификаторов пространства имен с использованием точечной нотации.

Регулярные выражения отсутствуют, потому что это вложенные структуры. Я думал, что, возможно, конструктор System.CodeDom.CodeTypeReference проанализирует его для меня, так как он имеетstring BaseType а такжеCodeTypeReferenceCollection TypeArguments члены, но те, по-видимому, должны быть установлены вручную.

CodeTypeReference - это та структура, которая мне нужна:

class TypeNameStructure
{
    public string Name;
    public TypeNameStructure[] GenericTypeArguments;
    public bool IsGenericType{get;}
    public bool IsArray{get;} //would be nice to detect this as well

    public TypeNameStructure( string friendlyCSharpName )
    {
       //Parse friendlyCSharpName into name and generic type arguments recursively
    }
}

Существуют ли какие-либо классы в структуре для такого разбора имени типа? Если нет, то как бы я пошел на разбор этого?

Ответы на вопрос(2)

Ваш ответ на вопрос