quarta-feira, 4 de junho de 2014

Webform com referência a código buildado

Hoje eu fiquei umas 2 ou 3 horas tentando descobrir porque minha página simplesmente se recusava a aceitar que uma classe que eu criei existia. O erro que dava era no arquivo designer:

The type or namespace name MyClass does not exist in the namespace MyProject (are you missing an assembly reference?)

No web.config:
    <system.web>
        <pages>
            <controls>
                <add tagPrefix="tag" namespace="MyProject" />
            </controls>
        </pages>
    </system.web>

Na página:
         <tag:MyClass ID="MyControl" runat="Server" />

No designer (gerado pelo Visual Studio):
         /// <summary>
        /// controle MyControl.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::MyProject:MyClass MyControl;

A classe:
        public class MyClass : Control
        {
                (código fonte)
        }

Tudo no lugar, certo? Foi o que pensei. Então pedi ajuda para alguém que realmente conhece WebForms. Descobri que eu tinha, por acidente, deixado o arquivo MyClass como Content no projeto, quando deveria estar como Compile.

Clique na class, aperte F4, na tela de Properties vá em Build Action e coloque Compile. Pronto. Agora funciona.

Nenhum comentário:

Postar um comentário