สารบัญ:
คำจำกัดความ - สมัชชาเพื่อนหมายถึงอะไร?
แอสเซมบลีเพื่อนใน C # หมายถึงแอสเซมบลี. NET ที่สามารถเข้าถึงสมาชิกของแอสเซมบลีอื่น สมาชิกในการชุมนุมที่เข้าถึงได้จากการชุมนุมของเพื่อนจะต้องมีการทำเครื่องหมายเป็น
ภายใน.
ชุดประกอบเพื่อนใช้ในสถานการณ์ที่มีความจำเป็นในการเข้าถึงคลาสภายในและสมาชิกในชุดประกอบหนึ่งจากชุดประกอบอื่นที่เฉพาะเจาะจง ช่วยให้แอสเซมบลีสองที่เฉพาะเจาะจงเพื่อแบ่งปันสมาชิกหรือฟังก์ชันการทำงานโดยไม่ต้องทำให้สาธารณะ
แอสเซมบลีเพื่อนยังใช้ในการทดสอบหน่วยที่แอสเซมบลีที่อ้างอิงรหัสการทดสอบจำเป็นต้องเข้าถึงสมาชิกที่ถูกทำเครื่องหมายเป็นภายในในแอสเซมบลีที่จะทดสอบ มันมีประโยชน์ในการพัฒนาไลบรารีคลาสที่ต้องการส่วนเพิ่มเติมที่มีอยู่ในชุดประกอบแยกต่างหากซึ่งจำเป็นต้องเข้าถึงสมาชิกในชุดประกอบที่มีอยู่
Techopedia อธิบายการชุมนุมของเพื่อน
โดยการทำเครื่องหมายสมาชิกของคลาสเป็นภายในพวกเขาสามารถมองเห็นคลาสอื่นภายในแอสเซมบลีเดียวกัน แต่เป็นส่วนตัวสำหรับคลาสที่อยู่นอกแอสเซมบลี ในการเข้าถึงสมาชิกภายในจากชุดประกอบเพื่อนคุณควรระบุชื่อชุดประกอบเพื่อนด้วยแอตทริบิวต์ InternalsVisibleToAttribute ในชุดประกอบที่มีการกำหนดสมาชิกภายในไว้ ชุดเพื่อนไม่สามารถเข้าถึงประเภทส่วนตัวและสมาชิกส่วนตัวได้
ตัวอย่างเช่น InternalsVisibleToAttribute ในแอสเซมบลี X สามารถใช้เพื่อระบุแอสเซมบลี Y เป็นแอสเซมบลีเพื่อนเพื่อให้แอสเซมบลี Y สามารถเข้าถึงทุกชนิดและสมาชิกของแอสเซมบลี X ที่ถูกทำเครื่องหมายเป็นภายใน
ต่อไปนี้เป็นแนวทางที่เกี่ยวข้องกับการพัฒนาชุดประกอบเพื่อน:
- ในขณะที่ใช้แอสเซมบลีที่เซ็นชื่อเครื่องมือ 'sn.exe' สามารถใช้เพื่อรับคีย์สาธารณะที่ต้องส่งผ่านไปยังแอททริบิวต์ที่ระบุแอสเซมบลีของเพื่อน
- ในขณะที่รวบรวมแอสเซมบลีของเพื่อนที่เข้าถึงสมาชิกภายในของแอสเซมบลีอื่นตัวเลือกคอมไพเลอร์ (/ ออก) ต้องถูกตั้งค่าด้วยชื่อของไฟล์ที่ส่งออก (.exe หรือ. dll)
- มีความจำเป็นต้องระบุทุกชุดที่จำเป็นต้องเป็นเพื่อนสำหรับชุดประกอบที่ต้องการเข้าถึงอย่างชัดเจน
- แนะนำให้ใช้ชุดประกอบเพื่อนโดยไม่ทำลายกฎของการห่อหุ้ม
