คำถามติดแท็ก expandoobject

4
การเพิ่มคุณสมบัติแบบไดนามิกไปยัง ExpandoObject
ฉันต้องการเพิ่มคุณสมบัติให้กับ ExpandoObject ตอนรันไทม์ ตัวอย่างเช่นการเพิ่มคุณสมบัติสตริงเรียก NewProp ฉันต้องการเขียนบางสิ่งเช่น var x = new ExpandoObject(); x.AddProperty("NewProp", System.String); เป็นไปได้อย่างง่ายดายหรือไม่

11
วิธีการตรวจสอบว่าทรัพย์สินมีอยู่ใน ExpandoObject?
ในจาวาสคริปต์คุณสามารถตรวจพบว่ามีการกำหนดคุณสมบัติโดยใช้คำสำคัญที่ไม่ได้กำหนด: if( typeof data.myProperty == "undefined" ) ... คุณจะทำเช่นนี้ใน C # โดยใช้คำหลักแบบไดนามิกที่มีExpandoObjectและไม่มีข้อยกเว้นได้อย่างไร


12
วิธีการแบน ExpandoObject ที่ส่งคืนผ่าน JsonResult ใน asp.net mvc
ฉันชอบในExpandoObjectขณะที่รวบรวมวัตถุไดนามิกฝั่งเซิร์ฟเวอร์ที่รันไทม์ แต่ฉันมีปัญหาในการทำให้สิ่งนี้แบนลงในระหว่างการจัดลำดับ JSON ก่อนอื่นฉันสร้างอินสแตนซ์ของวัตถุ: dynamic expando = new ExpandoObject(); var d = expando as IDictionary<string, object>; expando.Add("SomeProp", SomeValueOrClass); จนถึงตอนนี้ดีมาก ในตัวควบคุม MVC ของฉันฉันต้องการส่งสิ่งนี้เป็น JsonResult ดังนั้นฉันจึงทำสิ่งนี้: return new JsonResult(expando); สิ่งนี้จะทำให้ JSON เป็นอนุกรมตามด้านล่างเพื่อให้เบราว์เซอร์ใช้: [{"Key":"SomeProp", "Value": SomeValueOrClass}] แต่สิ่งที่ฉันต้องการจริงๆคือเห็นสิ่งนี้: {SomeProp: SomeValueOrClass} ฉันรู้ว่าฉันสามารถบรรลุสิ่งนี้ได้ถ้าฉันใช้dynamicแทนExpandoObject- JsonResultสามารถทำให้dynamicคุณสมบัติและค่าเป็นอนุกรมเป็นออบเจ็กต์เดียว (โดยไม่มีธุรกิจคีย์หรือมูลค่า) แต่เหตุผลที่ฉันต้องใช้ExpandoObjectเพราะฉันไม่รู้ทั้งหมด คุณสมบัติที่ฉันต้องการบนอ็อบเจ็กต์จนถึงรันไทม์และเท่าที่ฉันรู้ฉันไม่สามารถเพิ่มคุณสมบัติแบบไดนามิกให้กับ a dynamicโดยไม่ใช้ExpandoObject. ฉันอาจต้องกรองธุรกิจ "คีย์" "มูลค่า" ในจาวาสคริปต์ของฉัน แต่ฉันหวังว่าจะได้ทราบก่อนที่จะส่งไปยังลูกค้า ขอบคุณสำหรับความช่วยเหลือของคุณ!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.