none
Вопрос по работе с репозиторием RRS feed

  • Вопрос

  • Доброго дня, уважаемые форумчане. Подскажите по организации программы, немного. Есть хост служба WIndows. В ней реализован следующий контейнер.

    this._container = new UnityContainer();
    this._container.RegisterType<IProcessDataOpcClient, ProcessDataOpcClient>(new ContainerControlledLifetimeManager())
                           .RegisterType<IWcfPlcService, WcfPlcService>()
                                                           /** логгер синглтон */
                           .RegisterInstance<ILogger>(this._logger, new ContainerControlledLifetimeManager())
                                                            /** репозиторий рецептов синглтон */
                           .RegisterType<IRepository<Recipe, ProcessData>, Repository<Recipe, ProcessData>>(new ContainerControlledLifetimeManager());

    Есть клиент OPC. Реализована служба WCF и их взаимодействие через контейнер. Репозиторий работает с ORM NHibernate. Все пучком. Но для WPF морды проекта хочу реализовать события NHibernate. И не могу понять, как их притащить в WCF событие. Может кто работал с событиями NHIbernate или хотя бы видел как - подскажите пожалуйста. Спасибо.


Ответы

  • Гм. Не совсем. Имеется ввиду любое событие, сгенерированное объектами классов, используемых службой и зарегистрированных в контейнере. Ну похоже работает. Пока сделал так, хотя вопрос синхронизации контекста в самой службе всплыл внезапно.

    Спасибо за внимание к теме.

Все ответы

  • Здравствуйте,

    Смотрите этот гайд:

    http://richarddingwall.name/2010/08/17/one-nhibernate-session-per-wcf-operation-the-easy-way/

    Думаю он поможет Вам разобраться.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    Модератор
  • Спасибо большое. Я правда недавно с контейнерами и не работал пока с виндзором, только юнити. Я прошу прощения - немного сумбурно описал проблему. Репозиторий NHibernate я описал у себя. И работа из WCF вроде устраивает. Непонятно просто, как описывать события из репозитория в самой WCF. В приложении WPF c инжекцией через конструктор я могу описать например

    public class MyModel(IRepository repo)
    {
        this._repo = repo;
        this._repo.OnError += MyEvent;
    }

    где OnError описанное мной событие. Могу ли я применять этот подход и в WCF сервисе. Так как мне нужно информацию, передаваемую в событии NHibernate отправить в коллбэк клиенту.

    Спасибо  за Ваше участие.

  • Здравствуйте,

    Надеюсь правильно понял Ваш вопрос, использовать можно, он есть в WCF:

    Метод DomainService.OnError


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    Модератор
  • Гм. Не совсем. Имеется ввиду любое событие, сгенерированное объектами классов, используемых службой и зарегистрированных в контейнере. Ну похоже работает. Пока сделал так, хотя вопрос синхронизации контекста в самой службе всплыл внезапно.

    Спасибо за внимание к теме.

  • Тогда отмечу Ваш ответ, если же что-то не будет работать, отпишитесь.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    Модератор