ตัวอย่างเช่นสิ่งนี้เกิดขึ้นกับฉันเมื่อฉันเพิ่มการกำหนดค่า (IConfigurationRoot) ในไฟล์ Startup.cs เพื่อให้สามารถเข้าถึงไฟล์ appsettings.json ซึ่งมีสตริงการเชื่อมต่อ
ดังนั้นครั้งแรกที่ฉันเขียน IConfigurationRoot เห็นได้ชัดว่าถูกทำเครื่องหมายว่าไม่รู้จัก ดังนั้นฉันจึงวางเมาส์ไว้เหนือมันและขยายคำแนะนำ Visual Studio จากหลอดไฟ ซึ่งได้แก่:
- ใช้ Microsoft.Extension.Configuration:
- Microsoft.Extension.Configuration.IConfigurationRoot
- สร้างประเภท
- เพิ่มแพ็คเกจ Microsoft.Extension.Configuration.Abstractions 1.1.0
ดังนั้นหากฉันเลือก "โดยใช้ Microsoft.Extensions.Configuration" คำสั่งการใช้จะถูกเพิ่มที่ด้านบนของไฟล์ของฉันและ VS รู้จัก IConfigurationRoot ทุกอย่างทำงานได้ดี แต่การตรวจสอบการอ้างอิงในโครงการของฉัน ไลบรารีนี้ไม่ได้ถูกเพิ่มเข้าไป:
ดังนั้นหากแทนที่จะเลือกการใช้คำสั่ง ฉันเลือก "เพิ่มแพ็คเกจ Microsoft.Extensions.Configuration.Abstractions 1.1.0" Visual Studio จะเพิ่มคำสั่งการใช้งานด้วย แต่จะเพิ่มการอ้างอิงใหม่เพิ่มเติม:
ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้น เหตุใดการเพิ่มคำสั่งใช้ (คำแนะนำแรก) จึงทำงานได้ดี เป็นเพราะการอ้างอิงมีอยู่แล้วในไลบรารีอื่นหรือไม่ ถ้าเป็นเช่นนั้น เหตุใดฉันจึงควรเพิ่มแพ็คเกจทีละรายการ จะดีกว่าไหมถ้าเพิ่มทีละรายการ จะเกิดอะไรขึ้นถ้าฉันเพิ่ม ฉันกำลังเพิ่มการอ้างอิงไปยังไลบรารีเดียวกันสองครั้งหรือไม่
ขอบคุณล่วงหน้า.