HtmlEncode จาก Class Library


166

ฉันมีห้องสมุดชั้นเรียน (ใน C #) ฉันต้องการเข้ารหัสข้อมูลของฉันโดยใช้วิธี HtmlEncode สิ่งนี้ทำได้ง่ายจากเว็บแอปพลิเคชัน คำถามของฉันคือฉันจะใช้วิธีนี้จากไลบรารีคลาสที่ถูกเรียกจากแอปพลิเคชันคอนโซลได้อย่างไร

คำตอบ:


208

นำเข้า System.Web หรือเรียก System.Web.HttpUtility ซึ่งประกอบด้วย

คุณจะต้องเพิ่มการอ้างอิงไปยัง DLL หากยังไม่มีอยู่

string TestString = "This is a <Test String>.";
string EncodedString = System.Web.HttpUtility.HtmlEncode(TestString);

7
คุณจำเป็นต้องสร้างอินสแตนซ์ของคลาส Server Utility ซึ่งได้รับการออกแบบมาเพื่อรองรับการทำงานที่กำลังดำเนินอยู่ขอและจำลองคุณสมบัติวัตถุ ASP Server เก่า HttpUtility เป็นชุดน้ำหนักเบาของวิธีการแบบคงที่
AnthonyWJones

3
ตรวจสอบให้แน่ใจว่าประเภทกรอบงานของคุณไม่ได้ระบุ "โปรไฟล์ลูกค้า" เปลี่ยนสิ่งนี้เป็นเฟรมเวิร์กแบบเต็มและคุณจะมีชุดประกอบ system.web
Martin Murphy

System.Web.HttpUtility ไม่พร้อมใช้งานในโครงการของฉัน (.NET Framework 4.7.1) System.Net.WebUtility.HtmlEncode (string) พร้อมใช้งานและทำงานได้ดี
30424

204

System.Net.WebUtility ชั้นสามารถใช้ได้เริ่มต้นจาก. NET 4.0 (คุณไม่จำเป็นต้องพึ่งพา System.Web.dll)


7
ขอบคุณตอนนี้ฉันสามารถใช้. NET 4 ไคลเอนต์โปรไฟล์แทนกรอบเต็ม!
Annagram

39

หากคุณใช้ 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();

25

ลองสิ่งนี้

System.Net.WebUtility.HtmlDecode(string);
System.Net.WebUtility.HtmlEncode(string);

4
นี้ดีขึ้นมากเพราะฉันไม่ต้องเพิ่มการอ้างอิงถึง System.Web ในโครงการ WPF ของฉัน
นิวแมน



3

ในกรณีที่คุณใช้ SharePoint 2010 การใช้รหัสบรรทัดต่อไปนี้จะหลีกเลี่ยงการอ้างอิงไลบรารี System.Web ทั้งหมด:

Microsoft.SharePoint.Utilities.SPHttpUtility.HtmlEncode(stringToEncode);

2

ในกรณีที่คุณใช้งาน Silverlight ให้ใช้สิ่งนี้:

System.Windows.Browser.HttpUtility.HtmlEncode(...);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.