public object GetStrategyParameter(string parameterName, object obj)
{
var field = obj.GetType().GetField(parameterName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
var property = obj.GetType().GetProperty(parameterName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
if (field != null && field.GetCustomAttributes(typeof(ParameterAttribute), true).Any())
return field.GetValue(obj);
if (property != null && property.GetCustomAttributes(typeof(ParameterAttribute), true).Any())
return property.GetValue(obj);
return null;
}