Пользовательский элемент управления не может быть доступен из другого файла CS - PullRequest
0 голосов
/ 13 декабря 2010

Существует UserControlA, который уже был разработан, когда я присоединился к проекту.Он находится в проекте, который я назову MyProjectWeb, а его пространство имен - MyProjectWeb.Common.

namespace MyProjectWeb.Common
{
    public partial class UserControlA : System.Web.UI.UserControl
    {

...

Существует еще один проект WorkFlowManager, содержащий файл классов, который обращается к этому UserControl1.

MyProjectWeb.Common.UserControlA myUserControlA = (MyProjectWeb.Common.UserControlA)WizardControl.FindControl("TabContainer5$tpSomething$UserControlID");

Примечание: WorkFlowManager и MyProjectWeb находятся в одном решении.

Это прекрасно работает.И теперь я хочу создать еще один UserControl, который будет UserControlB.

Я следовал точно так же.

namespace MyProjectWeb.Common
{
    public partial class UserControlB : System.Web.UI.UserControl
    {

Но, к моему удивлению, я не могу создать экземпляр UserControlB в том же файле кода в WorkFlowManager.Пространство имен MyProjectWeb.Common даже не содержит UserControlB.Когда я компилирую, я, очевидно, получаю
The type or namespace name 'UserControlB' does not exist in the namespace 'MyProjectWeb.Common' (are you missing an assembly reference?)

Почему я могу ссылаться на UserControlA, но не на UserControlB, которые находятся в том же пространстве имен из файла WorkFlowManager cs?Если я получаю доступ к пространству имен MyProjectWeb.Common в любом месте внутри MyProjectWeb, я вижу оба пользовательских элемента управления.Где-нибудь искать ошибки?

Я использую Visual Studio 2005 с ASP .NET 2.0

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Это будет зависеть от того, как WorkFlowManager ссылки на проект MyProjectWeb dll.Если оба проекта находятся в одном и том же решении, то это должна быть ссылка на проект, но вам необходимо проверить это.Если ссылка сделана на файл dll, то вам нужно увидеть, где именно хранится ссылочный файл - я предполагаю, что проект WorkFlowManager ссылается на частную копию MyProjectWeb dll, которая, очевидно, делаетне обновляется при перестройке MyProjectWeb.

1 голос
/ 13 декабря 2010

Я бы посмотрел на проект, чтобы знать наверняка, то, что вы говорите выше, не говорит мне достаточно.

Быстрые идеи:

  • Убедитесь, что UserControlB.cs действительно находится в правильном проекте.
  • Убедитесь, что UserControlB.cs помечен как «Компилировать» для типа сборки.
  • Убедитесь, что UserControlB на самом деле "B", а не "A", поскольку, поскольку они являются частичными, орфографическая ошибка может привести к их объединению.
  • Эти пользовательские элементы управления являются "частичными". Вы также копировали другую часть?
  • Убедитесь, что в веб-проекте нет ошибок, возможно, проект собран неправильно, и вы получаете ошибку из-за устаревшей сборки.
  • Очистить + восстановить. Удалите каталоги bin и obj вручную.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...