Improve company productivity with a Business Account.Sign Up

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 876
  • Last Modified:

vb express 2010 html decode

Trying to use the built in html decoder but it doesn't seem to work in vb express 2010
Many examples on the web but can't get to work.
here is an example from microsoft
Imports System
Imports System.Web
Imports System.IO

Class MyNewClass
   Public Shared Sub Main()
      Dim myString As String
      Dim myWriter As New StringWriter()
      ' Decode the encoded string.
      HttpUtility.HtmlDecode(myString, myWriter)
        End Sub 'Main
End Class 'MyNewClass

the httpUtility gives an error that it is not declared
  • 5
  • 4
1 Solution
Jacques Bourgeois (James Burger)PresidentCommented:
Nothing was initialized.

First, you try to decode a String that has nothing in it.

Second, you need to decide where you want to send the result. The StringWriter is an object not often used, and it sends its output to a StringBuilder, an object that you have to learn to use.

You might want to send to a StreamWriter instead, which woud send the information to a file.
Dim myString As String
Dim myWriter = New System.IO.StreamWriter("YourFile.txt")

MyString="your encoded String"
HttpUtility.HtmlDecode(myString, myWriter)

Open in new window

If you want to decode a string and have the result also in a String, you should use another form of the HttpUtility.Decode:
Dim myString As String
Dim decodedStrins as String

myString="your encoded String"

Open in new window

aonecomputersAuthor Commented:
Sorry I just tried to simplify the code without having code not related to the problem. The error is in the declaration of the HttpUtility.HtmlDecode not in any of the stuff you are referring to. Did you actually get the code you posted to work in VB express 2010 w/o a declaration error?
I tried and after I corrected your typo got the same error Error HttpUtility' is not declared. It may be inaccessible due to its protection level.
Jacques Bourgeois (James Burger)PresidentCommented:
Could you post the exact error message. It would be very surprised if it was HttpUtility that is not declared, since you do not have to declare it to use HtmlDecode.

That is why, if you read my answer carefully, I am pointing to the fact that First, you try to decode a String that has nothing in it.

There is nothing in myString, so the decoder has nothing to work with when you call the method. I suspect that the thing that is not declared is myString, not HttpUtility.

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

aonecomputersAuthor Commented:
The exact error is Error HttpUtility' is not declared. It may be inaccessible due to its protection level.
This is not a run time error. It is highlighted immediately in the editor.
Jacques Bourgeois (James Burger)PresidentCommented:
You probably did not reference the dll.

If you call help on HttpUtility, it tells you that this class is in the System.Web.dll.

In order to use that dll, you need to tell Visual Studio that you want to work with it. This is called a reference.

You add a reference through Project...Add Reference. Select the .NET tab, go down to System.Web and click OK.

From then on, your project can use the classes in the dll, including HttpUtility.

Most of the examples you find on the web for that class are assuming that you are in a Web application. This dll is referenced automatically when you create a Web application. It is not in many other types of projects, and you need to reference it manually in order to use it.
aonecomputersAuthor Commented:
I will check that out and let you know. I thought the Imports system.web did that.
aonecomputersAuthor Commented:
There isn't one exactly like that. There is System.Web.ApplicaionServices and System.Web.Services but there doesn't seem to be any way to select them they are just displayed. I did highlight one at a time and click OK but if I go back everything in the list is exactly the same. I
I guess you don't have vb express. What are you using as a base of reference?
I have attached a picture of it below and you can see the actual code to the left. add reference
Jacques Bourgeois (James Burger)PresidentCommented:
Imports is not sufficient.

You set the reference first. Then you could optionnally use Imports.

The use of Imports is only to simplify your code. Once you have an Imports, you do not have to type the namespace each time you call a class or a constant. That is all that Imports do. It's akind to the Path environment variable for directories if you know the concept.

Imports does nothing if the reference is not set.

The reference you need is System.Web, no more. The one you have in your screen shot are only extensions of System.Web. They do not contain the basics.

The probable reason why you do not see System.Web is that you have targeted the Framework 4 Client Profile as shown at the top of your screen shot. This is a subset of the framework that does not contain everything. And according to the documentation, System.Web is not supported in the shortened version you are targeting.

You can change it by going into the projects properties: Project...<Project name> Properties...Compile Tab...Advanced Compile Options button...Target Framework. You should reference .NET Framework 4, not the Client Profile to have access to System.Web.

If you still do not see System.Web in the references after that, it can be for 2 more reasons:

- The list does not always sort properly. Clicking on the header of the column usually correct the problem, but not always. You might have to scroll until you find System.Web.

- If you have installed only Visual Basic Express, you do not have everything. Most web components come with Visual Web Developer Express. If you install it, it will merge with your installation of Visual Basic without causing any problem. You will simply have more choices when you create a new project, and more classes to work with. I have a complete installation, so I cannot tell you if VB alone has System.Web, but I would bet it does not. You might also install Visual Studio Express instead. It includes both as well as a few other languages and tools to develop applications for Windows Phone.

aonecomputersAuthor Commented:
This did have web developer. The procedure you gave about changing to .net framework 4 instead of the client profile did it. No idea how this got set to begin with but doing that gave the system.web in the add reference and clicking it took some time as opposed to before clicking any of the stuff didn't seem to do anything.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now