The settings are external to the BusinessLogic, as Ben Robinson pointed. The Business Logic does not need to know, or care, who called it and how. You can accomplish this via Dependecy Injection. Your code might look something like this:
//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
I prefer this approach, as it is more flexible, but you could also use the app.config route for Windows applications, that will enable you to read configuration files from both windows and web applications