Я в настоящее время разрабатываю решение, где модель домена & репозиторий может быть расширена плагинами приложений. Теперь я столкнулся с несколькими проблемами, которые перечислены ниже.Расширяемая модель домена с NHibernate
Моя первая проблема заключается в создании расширяемой модели домена. Я думал об использовании наследования здесь, но, честно говоря, я понятия не имею, как я могу использовать несколько модулей плагинов, расширяющих один и тот же объект домена. Я вроде бы склоняюсь к тому, чтобы сделать каждый объект домена частичным и позволить плагинам расширять его таким образом. В случае, если у меня есть несколько плагинов, расширяющих один и тот же объект домена, мне не придется беспокоиться о загрузке разных расширенных сборок доменов для каждого плагина. У меня все равно будет только один объединенный объект домена во время выполнения. Есть идеи по этому поводу?
Другая проблема заключается в расширении файла сопоставления NHibernate. Я мог бы каждый файл сборки встраивать встраиваемый объект домена, который он расширяет, и мой менеджер NHibernate загружает его, а не тот, который указан в базовом домене. Еще раз, проблема в том, что если у меня есть несколько плагинов, расширяющих один и тот же объект домена. У меня может быть один файл переопределения плагинов для другого. Решение, которое я имею в последней задаче, не так велико, но я думал о включении контрольной суммы в сборку плагина в качестве сигнатуры для исходного файла сопоставления, который он использовал до его расширения. Я могу проверить эту контрольную сумму во время загрузки и загружать карту плагина только в том случае, если контрольные суммы совпадают. Довольно уродливый, но по крайней мере я не буду переопределять любые карты, которые отличаются от базовой карты, используемой для расширения в сборке плагина.
В любом случае, я хотел бы услышать, что вы, ребята, думаете об этом. Благодаря!
Спасибо! Я помню короткое чтение об атрибуте подкласса, но я никогда не думал об этом. Способность делать это в NH определенно делает вещи намного легче, чем я думал. – 2009-08-24 20:09:59