В качестве альтернативы вы можете использовать отражение для непосредственного вызова CreateChildControls, что исключает необходимость использования открытого метода для его вызова. Это было бы достаточно просто:
var methodInfo = control.GetType().GetMethod("CreateChildControls", BindingFlags.Instance | BindingFlags.NonPublic);
methodInfo.Invoke(control, new object[] { });
Вы можете вставить этот код куда-нибудь, так что вам нужно будет сделать это только один раз и использовать его снова.
РЕДАКТИРОВАТЬ : ваш тест может наследоваться и от вашего элемента управления, поэтому вы можете напрямую вызывать некоторые из этих методов. Но вы должны создать экземпляр своего контроля, создав тест, а не элемент управления, как в:
public class CtlTest : Ctl
{
[Test]
public void A()
{
var ctl = new CtlTest();
ctl.RecreateChildControls(); //protected, but can be accessed because of inheritance
}
}
НТН.