Настройки являются внешними по отношению к 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, который позволит вам читать файлы конфигурации как из окон, так и из веб-приложений