Здравствуйте, Ziaw, Вы писали:
Z>Как задать базовый тип у помеченного класса? Z>Как один и тот же макрос вызвать на разных стадиях и как узнать стадию?
опиши два одноименных макроса указав им разным стадии компиляции:
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, Ziaw, Вы писали:
Z>>Как задать базовый тип у помеченного класса?
А>Лучехше не связывать руки пользователям жестко задавая А>базовый класс из макроса. Лучше добавить интерфейс, и А>добавит реализацию его методов в макросе.
А>Добавить интерфейс можно на стадии BeforeInheritance с помощю А>TypeBuilder.AddImplementedInterface().
Мне нужен класс который станет либо DbContext'ом от linq, либо DbManager'ом от bltoolkit в зависимости от макрореференса.
Неужели в BeforeInheritance это нельзя сделать?
Можено было бы генерить весь класс, но не хочется, хочется дописывать его руками уметь.
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, Ziaw, Вы писали:
Z>>Можено было бы генерить весь класс, но не хочется, хочется дописывать его руками уметь.
J>partial class/methods для этого придумали.
хотя все равно — принудительное наследование — зло. не лудше композицией заменить? тогда те придется просто поле нужного типа генерить.
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, Ziaw, Вы писали:
Z>>Можено было бы генерить весь класс, но не хочется, хочется дописывать его руками уметь.
J>partial class/methods для этого придумали.
Здравствуйте, Jack128, Вы писали:
J>хотя все равно — принудительное наследование — зло. не лудше композицией заменить? тогда те придется просто поле нужного типа генерить.
А можно я сам буду решать, что для меня зло, а что нет? В данном случае нужнен именно наследник.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, Jack128, Вы писали:
J>>хотя все равно — принудительное наследование — зло. не лудше композицией заменить? тогда те придется просто поле нужного типа генерить.
Z>А можно я сам буду решать, что для меня зло, а что нет? В данном случае нужнен именно наследник.