Si dijera Control1 modulo = ... podría ser porque se hereda todo y le puedo establecer un This propio, pero no puedo adivinar si se incluirá Control1 o Control2 ya que los tipos no se pueden establecer de forma dinámica.
Lo que debes de hacer es crear una clase que herede de System.Web.UI.UserControl, en esa clase declaras la propiedad que van a tener todos tus controles, luego creas UserControls (ascx), pero le cambias la clase de la que heredan por tu nueva clase.
Al momento de hacer el loadcontrol, ahora puedes castear todos los controles a tu nuevo tipo, un tipo común para todos, y desde ahí utilizar la propiedad
public class BaseUserControl : System.Web.UI.UserControl
{
public string Nombre
{
get { return ViewState["_Nombre"] != null ? ViewState["_Nombre"].ToString() : string.Empty; }
set { ViewState["_Nombre"] = value; }
}
}
public partial class WebUserControl1 : BaseUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
Literal1.Text = this.Nombre;
}
}
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
BaseUserControl control = (BaseUserControl)LoadControl("WebUserControl1.ascx");
control.Nombre = "Novlucker";
PlaceHolder1.Controls.Add(control);
}
}
Saludos