// Sample by Fórum
WebFormPart part;
foreach (IWebTag tag in WebFormHelper.EnumerateWebTag(part))
if (tag.Type == WebTagType.UserControl)
{
foreach (PropertyDescriptor prop in tag.Properties.GetProperties())
{
// ...
}
}
Lo de arriba es como para recorrer todas las propiedades definidas para cada control, pero dependiendo qué es lo que quieras hacer puede haber mejores opciones, por ejemplo para acceder (get/set) directamente al valor de algunas propiedades, obtener una representación para salvar de todas las propiedades (que incluye sólo lo necesario y maneja las referencias a objetos por Id), o restaurar los valores a partir de esa representación, etc.
Por ejemplo, para obtener el caption de un control que es un botón, usarías
tag.Properties.GetPropertyValue<string>(Properties.HTMLBTN.Caption)