The EnvDTE.CodeElement class of the automation model (EnvDTE) provides the Name and FullName properties. The FullName is the Name prefixed by the names of parent code elements (namespace, class, etc).
When you have generic code elements such as:
public void f1<Q>()
and you use the file code model to get their full names, you get:
So far so good. However, for names you get:
when you would expect:
since the <...> portion is actually part of the name, that is, C1 and C1<T>, C1<T,U> are totally different types and they can even exist at the same time in a class library.
Notice that the Class View toolwindow, which shows names (and not full names), correctly shows C1<T> and f1<Q>. The CodeElement.Name property should follow suit...