Сборка пользовательских элементов управления в разных проектах?

У кого-нибудь есть пример, как хранить пользовательские элементы управления в сборке для повторного использования в нескольких проектах?

Я сделал сборку с помощью пользовательских элементов управления, но у меня было много проблем, когда я пытался зарегистрировать сборку. Наконец-то это сработало, но потом, когда я попытался получить доступ к событию, у меня появилась ошибка "Ссылка на объект не установлена ​​на экземпляр объекта",

Спасибо большое.

4 ответа

Пользовательские элементы управления не могут быть использованы в разных проектах без особой боли. А именно, файлы.ascx должны быть доступны каждому из ссылающихся проектов, а не только сборке. Это затрудняет обновление и развертывание. Возможно, но очень сложно в зависимости от вашей среды.

Лучше всего создать новую сборку с элементами управления сервером. Основное отличие состоит в том, что серверный элемент управления является 100% кодом и легко переносится между проектами. Это означает, что вы не можете создавать составные элементы управления, просто перетаскивая их на поверхность конструктора. Однако вы имеете полный контроль над выдаваемым html и можете добавлять элементы управления в другой проект, просто ссылаясь на сборку.

Пошаговое руководство по созданию пользовательских серверных элементов управления см. По адресу: http://msdn.microsoft.com/en-us/library/yhzc935f.aspx

Единственный другой вариант, кроме предоставляемого @Chris, заключается в том, что вы можете найти утилиту (я знаю, что она существует, потому что я знаю людей, которые ее использовали), которая объединяет проект, содержащий UC, со многими дочерними проектами. По сути, это дублирование кода, но только тогда вам нужно изменить одну базу кода.

Большое спасибо, ребята, за ваши ответы и время. Я думаю, что я буду продолжать копировать код во всех моих проектах, потому что это становится слишком сложным, также я нашел эту статью в MSDN http://msdn.microsoft.com/en-us/library/aa651710%28VS.71%29.aspx основном сказал, что мы должны сделать отдельную копию в каждом приложении, в противном случае я должен использовать "Пользовательские веб-элементы управления", и моя идея состояла в том, чтобы повторно использовать эти пользовательские элементы управления, а не переписывать их. Теперь я должен искать своего босса и убить его, чтобы дать мне эту задачу и заставить меня тратить 3 дня на эту проблему!!;) Большое спасибо Крису за редактирование моего вопроса, иногда мой английский ужасен.

Посмотрите на эту статью:

http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx

Кажется, что для его запуска потребуется много работы, но это возможно. Другой вариант - преобразовать пользовательские элементы управления в пользовательские элементы управления сервером, как описано здесь:

http://msdn.microsoft.com/en-us/library/aa479318.aspx

Другие вопросы по тегам