I have a class library (in C#). I need to encode my data using the HtmlEncode method. This is easy to do from a web application. My question is, how do I use this method from a class library that is being called from a console application?
7 Answers
Import System.Web Or call the System.Web.HttpUtility which contains it
You will need to add the reference to the DLL if it isn't there already
string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);
3 Comments
AnthonyWJones
You need to create an instance of the Server Utility class which is designed to support a current in progress Request and emulate features the old ASP Server object. HttpUtility is a lighter weight set of Static methods.
Martin Murphy
Make sure that your framework type does not specify "Client Profile". Changes this to the full framework and you'll have the system.web assembly available
Kappacake
System.Web.HttpUtility was not available in my project (.NET Framework 4.7.1). System.Net.WebUtility.HtmlEncode(string) was available and worked fine.
If you are using C#3 a good tip is to create an extension method to make this even simpler. Just create a static method (preferably in a static class) like so:
public static class Extensions
{
public static string HtmlEncode(this string s)
{
return HttpUtility.HtmlEncode(s);
}
}
You can then do neat stuff like this:
string encoded = "<div>I need encoding</div>".HtmlEncode();
Comments
Try this
System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
1 Comment
newman
This is much better because I don't have to add reference to System.Web in my WPF project.
Just reference the System.Web assembly and then call: HttpServerUtility.HtmlEncode
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmlencode.aspx