Мне удалось решить эту проблему, обновив файл tsconfig.app.json , добавив в него свойство files и указав app/app.module.ts
в массиве.
Как Lee заявил, можно сделать это с рекурсией.
private static void FindFields(ICollection<FieldInfo> fields, Type t) {
var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
foreach (var field in t.GetFields(flags)) {
// Ignore inherited fields.
if (field.DeclaringType == t)
fields.Add(field);
}
var baseType = t.BaseType;
if (baseType != null)
FindFields(fields, baseType);
}
public static void Main() {
var fields = new Collection<FieldInfo>();
FindFields(fields, typeof(B));
foreach (FieldInfo fi in fields)
Console.WriteLine(fi.DeclaringType.Name + " - " + fi.Name);
}
Я не попробовал его, но необходимо смочь получить доступ к членам парламента, не занимающим официального поста базового типа через Тип. Свойство BaseType и рекурсивно накапливает все частные поля через иерархию наследования.
Вы не можете получить доступ к частным полям A
использование типа B
потому что те поля не существуют в B
- они только существуют в A
. Любой необходимо указать тип A
непосредственно, или получите его через другие средства (такие как получение базового класса от типа B
).
Вы можете получить доступ к закрытым членам класса A из класса B с помощью «вложенных классов» . Вы делаете класс A внешним классом, а класс B внутренним классом
Class A
{
...
Class B
{
.......
}
}