ฉันมีห้องสมุดชั้นเรียน (ใน C #) ฉันต้องการเข้ารหัสข้อมูลของฉันโดยใช้วิธี HtmlEncode สิ่งนี้ทำได้ง่ายจากเว็บแอปพลิเคชัน คำถามของฉันคือฉันจะใช้วิธีนี้จากไลบรารีคลาสที่ถูกเรียกจากแอปพลิเคชันคอนโซลได้อย่างไร
ฉันมีห้องสมุดชั้นเรียน (ใน C #) ฉันต้องการเข้ารหัสข้อมูลของฉันโดยใช้วิธี HtmlEncode สิ่งนี้ทำได้ง่ายจากเว็บแอปพลิเคชัน คำถามของฉันคือฉันจะใช้วิธีนี้จากไลบรารีคลาสที่ถูกเรียกจากแอปพลิเคชันคอนโซลได้อย่างไร
คำตอบ:
นำเข้า System.Web หรือเรียก System.Web.HttpUtility ซึ่งประกอบด้วย
คุณจะต้องเพิ่มการอ้างอิงไปยัง DLL หากยังไม่มีอยู่
string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);
System.Net.WebUtility
ชั้นสามารถใช้ได้เริ่มต้นจาก. NET 4.0 (คุณไม่จำเป็นต้องพึ่งพา System.Web.dll)
หากคุณใช้ C # 3 คำแนะนำที่ดีคือการสร้างวิธีการขยายเพื่อให้ง่ายยิ่งขึ้น เพียงสร้างวิธีการแบบคงที่ (โดยเฉพาะอย่างยิ่งในระดับคงที่) เช่น:
public static class Extensions
{
public static string HtmlEncode(this string s)
{
return HttpUtility.HtmlEncode(s);
}
}
จากนั้นคุณสามารถทำสิ่งที่เรียบร้อยเช่นนี้:
string encoded = "<div>I need encoding</div>".HtmlEncode();
ลองสิ่งนี้
System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);
เพิ่มการอ้างอิงถึง System.Web.dll แล้วคุณสามารถใช้คลาส System.Web.HtmlUtility
เพียงอ้างอิงแอสเซมบลี System.Web แล้วโทร: HttpServerUtility.HtmlEncode
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmlencode.aspx
ในกรณีที่คุณใช้ SharePoint 2010 การใช้รหัสบรรทัดต่อไปนี้จะหลีกเลี่ยงการอ้างอิงไลบรารี System.Web ทั้งหมด:
Microsoft.SharePoint.Utilities.SPHttpUtility.HtmlEncode(stringToEncode);
ในกรณีที่คุณใช้งาน Silverlight ให้ใช้สิ่งนี้:
System.Windows.Browser.HttpUtility.HtmlEncode(...);