MVVMCROSS 6.4.2 เป็นการอัปเดตภายใน MVVMCROSS 6 Series ซึ่งแนะนำการเปลี่ยนแปลงและการปรับปรุงกรอบการทำงานหลายอย่าง ในขณะที่การเปลี่ยนแปลงเฉพาะใน 6.4.2 นั้นไม่ได้มีรายละเอียดในผลการค้นหาการทำความเข้าใจบริบทที่กว้างขึ้นของ MVVMcross 6 และกลไกการโหลดปลั๊กอินสามารถช่วยระบุผลกระทบที่อาจเกิดขึ้นกับการโหลดปลั๊กอิน
การเปลี่ยนแปลงคีย์ใน mvvmcross 6
1. การพัฒนาปลั๊กอินแบบง่าย: เริ่มต้นจาก MVVMCROSS 6.0 การพัฒนาปลั๊กอินกลายเป็นเรื่องง่ายขึ้น ในการสร้างปลั๊กอินคุณต้องสร้างไลบรารีที่อ้างอิงแพ็คเกจ MVVMcross หลักเพิ่มประเภทที่สืบทอดมาจาก `imvxplugin` และใส่คำอธิบายประกอบด้วย` mvxpluginattribute ' วิธี `โหลด 'ของปลั๊กอินจะถูกเรียกโดยอัตโนมัติระหว่างการตั้งค่าแอปซึ่งคุณควรลงทะเบียนบริการและคลาสด้วยคอนเทนเนอร์ IOC [4]
2. การปรับปรุง IOC: MVVMCROSS 6 รวมถึงการปรับปรุงในระบบ IOC (การผกผันของการควบคุม) เช่นการจับคู่ตัวสร้างที่ดีขึ้นสำหรับบริการซึ่งอาจส่งผลกระทบต่อวิธีการโหลดปลั๊กอินและลงทะเบียน [9]
3. การสนับสนุนแพลตฟอร์ม: MVVMCROSS 6 รองรับแพลตฟอร์มต่าง ๆ รวมถึง Xamarin iOS, Android, Forms, Windows และ Mac การสนับสนุนในวงกว้างนี้ช่วยให้มั่นใจได้ว่าปลั๊กอินสามารถใช้กับแพลตฟอร์มที่แตกต่างกันได้ แต่ก็หมายความว่าปัญหาเฉพาะแพลตฟอร์มอาจเกิดขึ้นหากไม่ได้รับการจัดการอย่างถูกต้อง [2]
ปัญหาที่อาจเกิดขึ้นกับการโหลดปลั๊กอิน
- การโหลดแอสเซมบลี: ใน MVVMCROSS 6 ปลั๊กอินจะถูกโหลดโดยการสแกนชุดประกอบสำหรับประเภทที่มีคำอธิบายประกอบด้วย `mVxpluginattribute` หากแอสเซมบลีที่มีปลั๊กอินไม่ได้อ้างอิงหรือโหลดอย่างเหมาะสมสิ่งนี้อาจนำไปสู่ปัญหาเกี่ยวกับการโหลดปลั๊กอิน [1] [4]
- ข้อยกเว้นอ้างอิง NULL: ดังที่เห็นในบางกรณีข้อยกเว้นการอ้างอิง NULL สามารถเกิดขึ้นได้หากชุดประกอบปลั๊กอินไม่ได้ระบุอย่างถูกต้องหรือหากมีปัญหากับกระบวนการลงทะเบียน IOC [1]
- ความเข้ากันได้ของเวอร์ชัน: ทำให้มั่นใจได้ว่าแพ็คเกจและปลั๊กอิน MVVMcross ทั้งหมดอยู่ในเวอร์ชันเดียวกันเป็นสิ่งสำคัญเพื่อหลีกเลี่ยงปัญหาความเข้ากันได้ ซึ่งรวมถึงการตรวจสอบว่าแพ็คเกจ NUGET ทั้งหมดได้รับการปรับปรุงเป็นเวอร์ชันที่เข้ากันได้ล่าสุด [7]
แนวทางปฏิบัติที่ดีที่สุดสำหรับการโหลดปลั๊กอินใน MVVMCROSS 6.4.2
- แทนที่ `loadplugins` อย่างถูกต้อง: หากปรับแต่งปลั๊กอินการโหลดตรวจสอบให้แน่ใจว่าวิธี` loadplugins 'ถูกแทนที่อย่างถูกต้องในคลาสการตั้งค่าเฉพาะแพลตฟอร์มเพื่อจัดการตรรกะที่กำหนดเอง [1] [7]
- ใช้ `imvxpluginmanager`: ใช้` imvxpluginmanager` เพื่อจัดการการโหลดปลั๊กอินและตรวจสอบให้แน่ใจว่าปลั๊กอินได้รับการลงทะเบียนอย่างถูกต้องกับคอนเทนเนอร์ IOC [4]
- ตรวจสอบบันทึกและข้อยกเว้น: ใช้เครื่องมือเช่นบันทึกอุปกรณ์บน Mac หรือ Windows เพื่อตรวจสอบข้อยกเว้นใด ๆ ที่อาจเกิดขึ้นระหว่างการโหลดปลั๊กอิน [3]
โดยสรุปในขณะที่ MVVMCROSS 6.4.2 ไม่ได้แนะนำการเปลี่ยนแปลงที่เฉพาะเจาะจงกับการโหลดปลั๊กอินเมื่อเทียบกับเวอร์ชันก่อนหน้าใน 6 ซีรี่ส์การทำความเข้าใจกระบวนการพัฒนาปลั๊กอินที่ง่ายขึ้นและทำให้มั่นใจได้ว่าการโหลดแอสเซมบลีที่เหมาะสมและการลงทะเบียน IOC เป็นกุญแจสำคัญในการหลีกเลี่ยงปัญหาด้วยการโหลดปลั๊กอิน
การอ้างอิง:[1] https://stackoverflow.com/questions/73128508/how-to-load-plugins- เมื่ออัปเดตถึง mvvmcross-6-4-2-2-from-5-6-2-2
[2] https://www.nuget.org/packages/mvvmcross/6.4.2
[3] https://github.com/mvvmcross/mvvmcross/issues/4364
[4] https://www.mvvmcross.com/documentation/plugins/plugins-development
[5] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md
[6] https://www.nuget.org/packages/plugin.ble/
[7] https://stackoverflow.com/q/33774785
[8] https://www.nuget.org/packages/mvvmcross.forms/6.4.2
[9] https://www.mvvmcross.com/mvvmcross-6.4.0-release/