Я использую расширение typerwriter для создания файла ts, соответствующего файлу c #, но есть переменные типа, объявленные в другом файле, поэтому мне нужно добавить оператор импорта.
, чтобы сделать это, я хочучтобы получить все имена классов в этом файле и добавить импорт, только если имя класса отсутствует в этом списке.
в этом примере BDTO в другом файле.
public class ADTO
{
public uint id { get; set; }
public uint editionId { get; set; }
public BDTO mask { get; set; }
}
tst код:
string Imports(Class c, File f)
{
IEnumerable<String> classes = f.Classes.Select(p=> p.name);
IEnumerable<Type> types = c.Properties
.Select(p => p.Type)
.Where(t =>((!t.IsPrimitive || t.IsEnum) && !classes.Contains(t.name)))
.Select(t => t.IsGeneric ? t.TypeArguments.First() : t)
.Where(t => t.Name != c.Name && t.Name != "DbGeography")
.Distinct();
return string.Join(Environment.NewLine, types.Select(t => $"import {{ {t.Name} }} from './misc';").Distinct());
}
$Classes(*DTO)[
$Imports
export interface $Name {
$Properties[
// $LoudName
$name: $Type;]
}]
это добавление: $Imports
вместо: import {BDTO} from './misc'