Помогите с наследованием в генерируемых классах
От: SergASh  
Дата: 28.08.07 19:31
Оценка:
Привет всем!

Пытаюсь из макроса построить два класса, связанных наследованием. В простом случае всё работает, а если класть эти классы в отдельное пространство имён по рецепту Влада, то получаю ошибку
unbound type name 'MyBase'

Вот пример
def env = ImplicitCTX().Env;
def env = GlobalEnv( "Test.Hidden&", env.Manager ); // Если это убрать, то работает, но так всё будет в том же NS, что и класс под атрибутом. Не хорошо.

def tb1 = env.Define( 
  <[decl:
    public class MyBase
    {
    }
  ]> );  
tb1.Compile();

def tb2 = env.Define( 
  <[decl:
    public class MyDerived : MyBase  // Пробовал и полностью квалифицированное имя. Не помогло.
    {
    }
  ]> );  
tb2.Compile();

Подозреваю, что я недостаточно информации передал через закодированную строку конструктору GlobalEnv. Но что ещё туда надо класть — не знаю.

Пространство имён Test.Hidden в проекте есть, причём не пустое, а с классами.

Спасибо.
PS. Надеюсь, я ещё не всех достал тут своими вопросами. Уж очень хочется разобраться с макросами.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.