Intermittent Referencing Bug in ASP.NET 2.0 / VS 2005

S

steve_barker333

Hi guys!

I keep getting the following error reported by VS 2005 in my ASP.NET
2.0 web project:

"The type or namespace name 'MainPages_XXX' could not be found (are you
missing a using directive or an assembly reference?)"

The line of C# code (in the "code-behind" file) that error refers to
looks something like this:

if (Page.PreviousPage == null || !(Page.PreviousPage is MainPages_XXX))
{
//Some code....
}

For instance, the error might occur in a page called Page1.aspx (with
code behind file Page1.aspx.cs). In this page, I might refer to another
page, say Page2.aspx (code behind Page2.aspx.cs) in order to check that
the previous page was the correct type. In this particular project,
I've used folders to break up the structure of my ASP.NET pages. The
pages that are "erroring" are all in a folder called MainPages,
hence the "MainPages_" prefix, which VS 2005 has added itself. In the
cases where I get errors, both pages are in the same folder!

Closing and re-opening VS 2005 fixes the problem, but clearly, for a
large solution, that is not a viable way to get around this!

Has anyone else seen this problem? Is there a work around or a hot fix?
Is it a bad idea to refer to the type of the previous page (using
"is") in order to check how you got to the page you're on?

You help would be greatly appreciated!

Thanks in advance,

Steve.
 
S

Sean Chambers

Do you have the <%@ Reference directive at the top of Page1.aspx
referring to the other page you want to access?

The page model in asp.net 2.0 has changed from 1.1, now you have to use
a reference directive to access other aspx pages, if you need Page1
access Page2, and Page2 to access Page1, then that would create a
circular reference, in which case you can create an interface that your
page implements and then pass the interface around instead (better idea
IMO)

hope i didn't go off base there =) Just trying to point out problems I
ran into.

Sean
 
S

steve_barker333

Hi Sean!

I'm pretty sure that this is not a referencing problem, since the
solution compiles if I close it down and open it. I think it's more a
bug with Studio. Thanks for your suggestions though.

There is not really any benefit in me using an Interface in what I'm
doing, since Page 1 is only ever used from Page 2, and Page 2 could use
any number of the few public properties that Page 1 exposes. I'd only
use an Interface if two pages that expose similar properties (say Page
1a and Page 1b) could lead to Page 2.

I personally don't think I've done anything that is frowned upon in my
code; it just doesn't always compile!

Thanks again!

Steve.
 
S

Sean Chambers

I see,

In that case I would delete all the compiled dll's and .pdb's, do a
"clean solution" and then a "rebuild solution"

I've noticed in the past that some mechanism (not sure what portion),
seems to want to cache the dll's in memory, perhaps by clearing them
out completley and doing a complete recompile that might fix the
problem?

Let me know what you find out.

Sean
 
S

steve_barker333

Hi Sean!

Thanks for your mail. Can you just confirm though, which dlls to clean?

I have found something else out:

When the error occurs, if I go to the .aspx.cs file relating to the
page mentioned in the error, and delete a semi-colon from the end of
any line, wait a while for the compiler to pick it up, and then replace
the semi-colon, the thing compiles OK. How weird is that?

Could this be to do with RAM? I've noticed that when the solution is
loaded, my RAM is all used up, and the PC is living entirely in virtual
memory. Perhaps a trip to my local PC shop would solve the problem?!

Thanks,

Steve.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,709
Latest member
AustinMudi

Latest Threads

Top