2009-08-31 4 views
1

Я использую SubSonic 2.2 для моего DAL. Чтобы соответствовать требованию, мне нужно настроить некоторые классы, созданные SubSonic. Для образца:Как настроить сгенерированные классы в SubSonic 2.2

общественный частичный класс Категория: ActiveRecord, IActiveRecord, IOtherInterface

Не могли бы вы дать мне некоторые подсказки. Где я могу изменить сгенерированный шаблон? Благодаря!

ответ

1

(редактирование: см поста runxc1 для лучшего ответа)

Вы можете изменить шаблоны, используемые для создания файлов класс, чтобы добавить в вашем другом интерфейсе. Вы не можете добавить интерфейс к частичным классам. Единственный трюк в том, что это добавит его ко всем сгенерированным классам. Вы также можете просто перейти к автоматически созданным классам и добавить свой интерфейс вручную после создания файлов классов.

Шаблоны SubSonic 2.2 немного сложны для работы с шаблонами 3.0, но по-прежнему очень легко модифицировать шаблоны.

Ниже ссылки для информации:

варианты:

  1. Изменить шаблоны, используемые для генерации для добавления в интерфейсе (все классы) , или
  2. Измените шаблоны, используемые для генерации, чтобы добавить в if/переключатели только для добавления интерфейсов к определенным классам, которые соответствуют определенным именам и т. Д., Или
  3. Редактирование созданных классов для добавления в ваш интерфейс (требуется повторное редактирование после каждого автогенерации)

После того, как вы изменили эти файлы aspx. Затем вам просто нужно обновить свой файл .config вашего DAL, чтобы указать новый путь к вашим настроенным файлам aspx и восстановить как обычно.

+0

Спасибо так много, Джим. Ваш обмен очень полезен для меня. Но у меня все еще есть вопрос. Я не нашел папку Template после установки SubSonic 2.2. Но я вижу еще один в папке SS 2.1 .. \ SubSonic 2.1 Final \ src \ SubSonic \ CodeGeneration \ Templates Все ли в порядке, если я использую шаблон из SS-2.1 и сгенерирую классы с использованием SS-2.2? – 2009-08-31 05:46:42

+1

Думаю, что да. Первоначально я изменил свои шаблоны, когда использовал 2.1, а затем обновил до 2.2, и я не изменил свои шаблоны. Нет проблем с обратной совместимостью (не знаю, что я знаю) между 2.1 и 2.2. –

+0

Спасибо, Джим, я пробовал с шаблоном из SS2.1, как упоминалось и немного изменил, теперь все должно быть хорошо. – 2009-09-01 01:44:02

1

Джим неправильный, вы можете добавить интерфейс через частичный класс. Я сохраняю одну папку со всеми Сгенерированными файлами, а другой - с измененными файлами класса, и я добавляю интерфейс к измененным файлам классов, и он отлично работает.

public partial class ContainerSearch : IContainerSearch 
{ 
} 

выше пример из моего кода я использую сейчас

+0

А, спасибо. Я этого не знал. Я думал, вам нужно определить интерфейсы для другого класса. –

+0

Я пробовал оба предложения, они хорошо работают. Поскольку мне нужно настроить метод Get/Set объекта класса (например, класс Category), мне потребовалось немного изменить шаблон. Спасибо всем за вашу поддержку. – 2009-09-01 01:32:12

Смежные вопросы