Я получаю ошибку «Ошибка рендеринга элемента управления», которая возникает, только когда я помещаю элемент управления в веб-форму в режиме desgin, если я запускаю страницу, элемент управления отображается правильно.
Вышеприведенный оператор не важен, эта ошибка возникает из-за того, что возвращенный объект панели инструментов имеет значение nul l.
После отладки проблема заключается в функции, которая вызывается из CeateChildControls ():
public static ToolBars LoadToolbarsFromConfigFile()
{
ToolBars toolbars;
Assembly executingAssembly = Assembly.GetExecutingAssembly();
string resource = "Editor.ConfigFiles.ToolBars.xml";
using (Stream stream = executingAssembly.GetManifestResourceStream(resource))
{
XmlSerializer serializer = new XmlSerializer(typeof(ToolBars));
toolbars = (serializer.Deserialize(stream)) as ToolBars;
}
return toolbars;
}
панель инструментов возвращает ноль! (в режиме дизайна)
Но когда я запускаю страницу, панели инструментов возвращают соответствующие данные.
Если вам нужна дополнительная информация о моем коде, пожалуйста, спросите.
Обновление:
Это должно быть что-то со сборкой,
Если вместо этого я использую файловый поток с указанным файлом, он работает.
Другое ОБНОВЛЕНИЕ:
Я немного изменил свой код и добавил «набор данных» для целей тестирования:
using (DataSet ds = new DataSet())
{
ds.ReadXml(typeof(TheEditor).Assembly.GetManifestResourceStream("Editor.ConfigFiles.ToolBars.xml"));
//show message box to see if it works
System.Windows.Forms.MessageBox.Show(ds.Tables.Count.ToString());
}
Еще одна вещь, которую я заметил, все вышеизложенное происходит, когда я добавляю свой элемент управления в новый проект веб-сайта, но если я установил свойство отладки проекта элемента управления для запуска внешней программы (я запускаю Visual Studio), и там я создаю новый проект. и добавить элемент управления все работает.