none
Архитектурное решение: Unity + ASP.NET WebForms RRS feed

  • Общие обсуждения

  • Всем привет!

    Есть три проекта:

    1) Проект, содержащий объявление доменных классов и классов-репозиториев:

    namespace Lib1.Domain
    {
        public interface IEntity { }

        public class Class1 : IEntity { }

        public class Class2 : IEntity { }
    }

    namespace Lib1.Domain.Repositories
    {
        internal interface IRepository { }

        internal interface RepositoryClass1 : IRepository { }

        internal interface RepositoryClass2 : IRepository { }
    }

    2) Проект, содержащий бизнес-логикуДанный проект является дружественный по отношению к проекту

    using Lib1.Domain.Repositories;

    namespace Lib2.BL
    {
        public class Service1
        {
            private IRepository _repository;
        }
    }

    Lib1.Domain
    

    поэтому имеет доступ к его репозиториям, помеченных как internal

     

    3) Клиент на ASP.NET WebForms (не является дружественным по отношению к проекту Lib1.Domain, поэтому не имеет доступа к репозиториям, так как они internal)

     

    Задача: Для данного проекта настроить Unity так чтобы, клиент (на ASP.NET) работал с классами бизнес-логики, в которые инджектятся internal-репозитории из сборки Lib1.Domain, при этом изменять видимость репозиториев с internal на public нельзя, чтобы исключить возможность использования репозиториев напрямую из клиентского приложения.

     

    Очень хотелось бы узнать решение этой проблемы!

    • Перемещено I.Vorontsov 5 июля 2010 г. 4:53 (От:Visual C#)
    • Изменен тип I.Vorontsov 12 июля 2010 г. 7:26
    • Изменен тип I.Vorontsov 12 июля 2010 г. 7:26

Все ответы

  • Уважаемый пользователь!

     

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме.


    Для связи [Mail]
  • Вы можете обратиться к инстансу юнити из сборки с бизнес логикой и там сделать соответствующие определения для репозиториев. Не красиво, но из клиента у вас не получится к интернал классам достучаться.

    Ещё вариант - создать фабрику репозиториев и ею пользоваться без юнити.

    20 июля 2010 г. 10:22