I'm curious about the usefulness of having the IApplicationSettings interface. Since it's in the Infrastructure project, I assume it's meant to be used across multiple separate projects/applications? But since the interface defines strongly-typed Properties, it seems to limit its usefulness? For example, the PayPalBusinessEmail property, if I use this interface in another project, that project might not have the concept of a PayPal Business Email.
It seems like the IApplicationSettings interface should just be a a Get() method and a Set() method to read/write settings? That way it's more portable across different projects? I would love to have strongly-typed application settings, but I don't see how we can have that AND portability across projects?
Something like:
Code:
public interface IApplicationSettings
{
object GetSetting(string name);
void SetSetting(string name, object value);
}