Я настоятельно рекомендую DTO, и мы использовали DTO с этим расширением Typewriter для Visual Studio, чтобы синхронизировать файлы .ts с файлами .cs.
Возможно, вы могли бы сделать что-то подобное.
https://frhagn.github.io/Typewriter/
Угловой интерфейс использует версию .ts, а бэкэнд C # использует версию .cs.Вы можете отредактировать .tst (файл шаблона машинописи), чтобы выполнить большую настройку, если вам нужны различия между вашей версией .ts и .cs.
Это лучший шаблон, который я 'Ниже приведено описание ve, которое позволяет нам вкладывать Enums и другие классы Dto:
${
// Enable extension methods by adding using Typewriter.Extensions.*
using Typewriter.Extensions.Types;
string TypeWithNoArray(Type t) => t.Name.TrimEnd('[', ']');
}
/* DO NOT EDIT ANY .TS FILES WITH THIS COMMENT
THESE .TS FILES ARE GENERATED BY A CORRESPONDING .CS FILE AND A .TST FILE
BY USING THE TYPEWRITER EXTENSION:
https://frhagn.github.io/Typewriter */
$Classes(*Dto*)[
$Properties(x => !x.Type.IsPrimitive || x.Type.IsEnum)[$Type[import { $TypeWithNoArray } from './$TypeWithNoArray';
]]
export class $Name {
$Properties[public $name: $Type = $Type[$Default];
]$BaseClass[$Properties[public $name: $Type = $Type[$Default];]]
}
]
$Enums(*Dto*)[
export enum $Name {$Values[
$name = $Value][,]
}
]