MarimerLLC/csla — pull request #278 by deerwood-mccord-jr (2014-05-20 19:36:19+00:00)
Title: Use IPropertyInfo vs string in Base SetPropertyConvert(ref field) and SetProperty(ref Field) variants.

1. Made Base Implementations of **SetPropertyConvert(of P, V)(_ref P field version_)** and **SetProperty(of P)(_ref P field version_)** use **_IPropertyInfo_** vs **_string_**.
* Reason: Micro-optimization removing the **GetRegisteredProperty** call when one has the **IPropertyInfo** object. As of 4.3.X.X (XP workstations) GetRegisteredProperty Loops thru the PropertyList.
* Side Effect: The string propertyName variants can throw an **ArgumentOutOfRangeException** vs. being wrapped in a **PropertyLoadException**. We felt it is more descriptive and fails clear. But this can be consider breaking change if users specifically catch PropertyLoadExceptions -- could have effectively wrapper the string variants via try-catch.
2. Exposed private member bypassPropertyChecks as a protected read-only property **IsBypassingPropertyChecks**.
* Reason: Needed to overload SetPropertyConvert and SetProperty to handle delegating to an embedded object's properties (which cannot be passed by reference). This required read-only access to that state.