มี 2 โครงการ. ทั้งสองเป็นแอปพลิเคชัน WPF
แอปพลิเคชัน 1: เพียงให้บริการการสื่อสารภายในกับ ฮาร์ดแวร์ ภายนอก ด้วยเหตุนี้จึงมีคลาสที่ใช้ร่วมกันแบบสาธารณะในคลาสรูทของแอปพลิเคชัน:
Public Shared Log As New clsLog
Public Shared NavigationObjectContainer As New Dictionary(Of String, Object)
โปรเจ็กต์ที่สอง ส่วนใหญ่เป็น GUI และยังใช้คลาสสาธารณะบางส่วนในคลาสรูทของแอปพลิเคชัน:
Public Shared Nav As New clsNavigationHelper
ตอนนี้ โครงการที่สอง (GUI) ใช้การอ้างอิงถึงโครงการ 1 (ฮาร์ดแวร์) และแสดงข้อผิดพลาดต่อไปนี้:
Der Typeninitialisierer สำหรับ "TB_HyperTerminal.Application" ได้ทำ Ausnahme เรียบร้อยแล้ว เป็นภาษาเยอรมัน แต่หมายความว่า Application object ใน Class 1 (Hardware) ไม่สามารถค้นหาคลาสที่แชร์ทั้งหมดได้ (เช่น clsLog และ NavigationObjectContainer)
InnerException
{"วัตถุประสงค์ของประเภท "FSCANT3.Application" อยู่ในประเภท "TB_HyperTerminal.Application" umgewandelt werden"}
คำถามของฉันคือวิธีแก้ปัญหานี้เพื่อให้ได้ แอสเซมบลีที่ถูกต้อง และออบเจ็กต์ Application ที่ถูกต้องสำหรับแต่ละโครงการ
เมื่อค้นหาสาเหตุ ฉันได้เปลี่ยนชื่อคลาสของโปรเจ็กต์ 2 (ฮาร์ดแวร์) เป็น TBHApplication และโปรเจ็กต์ 1 ยังคงเรียกว่า Application ไม่ เราไม่สามารถเห็นได้ว่าทำไมการแคสต์จึงเป็นไปไม่ได้: