I used most of the approaches you mentioned. The answer may depend on many factors.
What roles of the client will make changes to the business rules (for example, business analyst, developer, experienced user, etc.)? Significant support for business analysts may require the creation of a rule engine with external rules in db and the user interface used. Significant developer support can be as simple as using something like MEF ( http://www.codeplex.com/MEF ).
You can also specify how often business rules need to be changed and what types of related operational requirements may apply (for example, the host process must remain on, unload the application domain, etc.). A good choice may require some careful assessment of likely or unlikely future needs.
Jason weber
source share