Библиотека BusinessLogic, используемая в Windows и веб-приложении.В бизнес-логике нужно знать, какое приложение вызывает его - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть приложение для Windows и веб-приложение.

У меня есть общий уровень бизнес-логики, из которого я хочу вызвать некоторые параметры.

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

MyApp.Windows

MyApp.WebApp

Они оба вызывают приложение бизнес-логики

MyApp.BusinessLogic

Есть ли способ идентификации вызывающей сборки?

Ответы [ 2 ]

4 голосов
/ 05 сентября 2011

Вы не должны принимать такое решение в библиотеке.Библиотека должна выполнить настройку путем передачи какого-либо объекта конфигурации в конструктор или метод.Затем вы просто заполняете этот объект конфигурации из реестра в приложении Windows и в файле конфигурации в веб-приложении.Таким образом, библиотеке не нужно знать, откуда она вызывается.

0 голосов
/ 05 сентября 2011

Настройки являются внешними по отношению к BusinessLogic, как указал Бен Робинсон. Бизнес-логике не нужно знать или заботиться о том, кто ее назвал и как. Вы можете сделать это с помощью Dependecy Injection . Ваш код может выглядеть примерно так:

//in MyApp.BusinessLogic
public class MyBusinessObject
{

   private IMyConfiguration _configuration;

   public MyBusinessObject(IMyConfiguration configuration)
   {
     _configuration = configuration;
   }

   //.. code that uses the configuration to do what's needed
}

//in MyApp.Entities (any project that is visible anywhere)
public interface IMyConfiguration 
{
   //whatever configurable properties are needed
}

//in MyApp.Windows
public class MyRegistryConfiguration : IMyConfiguration 
{
  //class that loads settings from the registry
}


// somewhere in the code
IMyConfiguration configuration = new MyRegistryConfiguration ();
MyBusinessObject business = new MyBusinessObject(configuration);
// use MyBusinessObject to do businessy things

Я предпочитаю этот подход, так как он более гибкий, но вы также можете использовать маршрут app.config для приложений Windows, который позволит вам читать файлы конфигурации как из окон, так и из веб-приложений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...