มีวิธี Deserialize Expressions ใน C # หรือไม่ฉันต้องการจัดเก็บ Expressions ในฐานข้อมูลและโหลดในขณะทำงาน
มีวิธี Deserialize Expressions ใน C # หรือไม่ฉันต้องการจัดเก็บ Expressions ในฐานข้อมูลและโหลดในขณะทำงาน
คำตอบ:
ฉันยังคงทำงานในไลบรารีที่กล่าวถึงโดยSerializing และ Deserializing Expression Trees ใน C #
ดูเหมือนว่าโครงการจะถูกยกเลิก (2008) แต่ฉันได้ทำงานกับมันและตอนนี้มันใช้งานได้กับ. NET 4.0 และ Silverlight ฉันได้ทำการแก้ไขข้อบกพร่องของโค้ดของพวกเขาและทำให้มันเป็นอิสระจาก DAL มากขึ้น
ตัวเลือกอื่น ๆ คือโครงการExpression Tree Serializationบน code.msdn.com - จะมีอะไรมากกว่าที่ต้องการที่นี่?
UPD: ตอนนี้http://archive.msdn.microsoft.com/exprserialization
มีโครงการเกี่ยวกับ GitHub / Nuget ที่เรียกว่าMetaLinqซึ่งมีจุดมุ่งหมายเพื่อให้การทำงานกับการแสดงออกเป็นเรื่องง่ายขึ้น
มันแปลงระหว่างนิพจน์ปกติและ 'EditableExpressions' ซึ่งเปลี่ยนแปลงได้และเป็นอนุกรมได้อย่างสมบูรณ์ดังนั้นจึงสามารถใช้กับ Json, Xml, Binary เป็นต้น
ตรวจสอบโพสต์บล็อกนี้สำหรับข้อมูลเพิ่มเติม
ไม่เต็ม; อย่างไรก็ตามตัวอย่างDynamic LINQอาจช่วยได้เล็กน้อย คุณสามารถทำให้นิพจน์เป็นอนุกรมเป็นสตริงได้อย่างแน่นอน (ในระดับหนึ่ง - ยาสามัญดูน่าเบื่อไปหน่อย) แต่ไม่มีตัวแยกวิเคราะห์แบบ inbuilt
บริการ WCF RIA ช่วยให้สามารถทำให้เป็นอนุกรมได้ IQuerayble<T>
ฉันกำลังทำโปรเจ็กต์สำหรับการจัดลำดับนิพจน์ ไม่เป็นไรและใช้งานได้ http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable