The type or namespace name could not be found

A

antonyliu2002

Hi, guys,

I am using Visual Web Developer Express 2005 for my web application.

I wrote a simple class called MyTestClass.cs and put it in the App_Code
folder.

I compiled it to library from the DOS console using the command line
compiler csc and got a new file called MyTestClass.dll in App_Code.

Now, in the code-behind file Default.aspx.cs for Default.aspx, when I
try to define an object of MyTestClass, the IDE even shows
"MyTestClass" as an option in the live code-completion drop-down list.
This suggests that MyTestClass.dll has been properly recognized,
doesn't it?

But, when I test my web application, I still get this error message:

Compiler Error Message: CS0246: The type or namespace name
'MyTestClass' could not be found (are you missing a using directive or
an assembly reference?)

Line 9: using System.Web.UI.WebControls.WebParts;
Line 10: using System.Web.UI.HtmlControls;
Line 11: using MyTestClass;
Line 12:
Line 13:

If I comment out Line 11, I will get the same error message at line
where I define the MyTestClass object. It looks like that just because
the IDE recognizes a type or namespace doesn't mean the compiler knows
about it, right?

Mind I asking what is wrong? I know nothing about assembly yet. Will
assembly come to the rescue?

Thanks.
 
J

Juan T. Llibre

If you compile MyTestClass.cs manually from the command-line,
place MyTestClass.dll in the /bin directory and remove MyTestClass.cs
from the App_Code folder.
 
A

antonyliu2002

Juan said:
If you compile MyTestClass.cs manually from the command-line,
place MyTestClass.dll in the /bin directory and remove MyTestClass.cs
from the App_Code folder.

Aha, thanks a lot, Juan!

AL
 
J

Juan T. Llibre

re:
BUT, the compiler still makes the same complaint. I've removed
MyTestClass.cs and have put MyTestClass.dll into bin.

The using directive at the beginning of a code-behind file enables you to use
unqualified class names to reference the DLL methods at compile time:

Class.Method(param1, param2);

Otherwise, you have to use the fully qualified name:

Namespace.Class.Method(param1, param2);

If your class doesn't have a namespace...add one to it.
Then, you can import the namespace with the "using" directive.






Aha, thanks a lot, Juan!

AL

BUT, the compiler still makes the same complaint. I've removed
MyTestClass.cs and have put MyTestClass.dll into bin.
 
A

antonyliu2002

Juan said:
re:

The using directive at the beginning of a code-behind file enables you to use
unqualified class names to reference the DLL methods at compile time:

Class.Method(param1, param2);

Otherwise, you have to use the fully qualified name:

Namespace.Class.Method(param1, param2);

If your class doesn't have a namespace...add one to it.
Then, you can import the namespace with the "using" directive.








BUT, the compiler still makes the same complaint. I've removed
MyTestClass.cs and have put MyTestClass.dll into bin.

It was hectic the last 2 days, and I did not have a chance to test it
out.

Now, I just tried giving it a namespace called MyTestNamespace, then
compiled using csc at the DOS console and put the dll to the bin
folder, removed the .cs source code.

The IDE can still recognize this newly-defined namespace, but the
compiler makes the same complaint.

I did the same thing before, and it worked right in the App_Code
folder. In other words, I did not have to create a bin folder and put
the dll in it.

Hmm, muy extraño.
 
A

antonyliu2002

It was hectic the last 2 days, and I did not have a chance to test it
out.

Now, I just tried giving it a namespace called MyTestNamespace, then
compiled using csc at the DOS console and put the dll to the bin
folder, removed the .cs source code.

The IDE can still recognize this newly-defined namespace, but the
compiler makes the same complaint.

I did the same thing before, and it worked right in the App_Code
folder. In other words, I did not have to create a bin folder and put
the dll in it.

Hmm, muy extraño.

I got it, I have to make the folder of my web application a virtual
directory. And then it is works.
 

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

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top