/// <summary>
///
/// </summary>
/// <param name="property"></param>
/// <returns></returns>
public static string GetMemberID(PropertyInfo property)
{
string memberName;
memberName = "P:" + GetFullNamespaceName(property) +
"." + property.Name.Replace('.', '#').Replace('+', '#');
try
{
if (property.GetIndexParameters().Length > 0)
{
memberName += "(";
int i = 0;
foreach (ParameterInfo parameter in property.GetIndexParameters())
{
if (i > 0)
{
memberName += ",";
}
Type type = parameter.ParameterType;
#if NET_2_0
if (type.ContainsGenericParameters && type.IsGenericParameter)
{
memberName += "`" + type.GenericParameterPosition.ToString();
}
else if (type.FullName != null)
{
memberName += type.FullName;
}
else
{
memberName += type.Name;
}
#else
memberName += type.FullName;
#endif
++i;
}
memberName += ")";
}
}
catch (System.Security.SecurityException) { }
return memberName;
}