Как получить доступ к атрибутам из подтипов
Я следовал документации TSL по атрибутам и создал два класса:
[GraphNode]
cell struct Fruit
{
string color;
}
[GraphNode, BaseType : Fruit]
cell struct Apple
{
string variety;
}
Я использовал сгенерированный код следующим образом:
Apple apple = new Apple();
Console.WriteLine(apple.variety);
Console.WriteLine(apple.color);
Код может получить доступ к variety
поле, но не может получить доступ к color
поле:
"Apple" не содержит определения "color", и метод расширения "color", принимающий первый аргумент типа "Apple", не найден (вам не хватает директивы using или ссылки на сборку?)
Как я могу получить доступ к унаследованному атрибуту?
1 ответ
Решение
Эти атрибуты не имеют внутреннего значения, кроме значения, которое вы им придаете. "BaseType" не делает Apple производным от Fruit. Вы можете просто спросить в своем коде значение атрибута "BaseType" в своей ячейке.