РЕДАКТИРОВАТЬ: я был наполовину неправильно в ответе ниже.
Посмотрите на CSharpCodeProvider.GetTypeOutput
.Пример кода:
using Microsoft.CSharp;
using System;
using System.CodeDom;
class Test
{
static void Main()
{
var compiler = new CSharpCodeProvider();
// Just to prove a point...
var type = new CodeTypeReference(typeof(Int32));
Console.WriteLine(compiler.GetTypeOutput(type)); // Prints int
}
}
Тем не менее, этот не не переводит Nullable<T>
в T?
- и я не могу найти какие-либо варианты, которые могли бы сделать это, хотя этоне означает, что такой опции не существует:)
В платформе нет ничего, чтобы поддерживать это - в конце концов, это специфичные для C # имена.
(Примечаниечто string
не a примитивного типа , между прочим.)
Вам придется сделать это, заметив Nullable`1
самостоятельно, и иметькарта с полным именем фреймворка для каждого псевдонима.