public static NameValueCollection AddMembershipParams(MembershipParameters groupParams)
{
MembershipParameters.Parameters = new NameValueCollection();
PropertyInfo[] pic = groupParams.GetType().GetProperties();
foreach (PropertyInfo pi in pic)
{
object value = pi.GetValue(groupParams, null);
bool include = false;
if (value != null)
{
string typeName = value.GetType().Name;
switch (typeName)
{
case "Int32":
if ((int)value > 0)
include = true;
break;
case "SortBy":
if ((SortBy)value != SortBy.NONE)
include = true;
break;
default:
include = true;
break;
}
if (include)
{
MembershipParameterAttribute name = (MembershipParameterAttribute)MembershipParameterAttribute.GetCustomAttribute(pi, typeof(MembershipParameterAttribute));
if(name != null)
Parameters.Add(name.Name, pi.GetValue(groupParams, null).ToString());
}
}
}
return MembershipParameters.Parameters;
}
}