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

Reflection เป็นความสามารถของโปรแกรมในการสังเกตและ / หรือปรับเปลี่ยนโครงสร้างและ / หรือพฤติกรรมของมันที่รันไทม์ การสะท้อนแสงขึ้นอยู่กับภาษาการเขียนโปรแกรมที่สนับสนุน - โปรดติดแท็กภาษาการเขียนโปรแกรมที่ใช้เมื่อใช้แท็กนี้

9
ฉันจะตรวจสอบได้อย่างไรว่าค่าที่ระบุเป็นรายการทั่วไป?
public bool IsList(object value) { Type type = value.GetType(); // Check if type is a generic list of any type } วิธีใดที่ดีที่สุดในการตรวจสอบว่าวัตถุที่ระบุเป็นรายการหรือสามารถส่งไปยังรายการได้
91 c#  reflection  list  generics 

4
อะไรคือความแตกต่างระหว่าง System.Type และ System.RuntimeType ใน C #?
วันนี้ฉันพยายามทำแบบทดสอบการประชุมและรับทุกประเภทในการประชุม (โดยการโทรAssembly.GetTypes()) เมื่อฉันสะดุดอะไรบางอย่าง: System.RuntimeType:[First.Namespace.FirstClass] เมื่อใดก็ตามที่ฉันพยายามเปรียบเทียบประเภทtypeof(FirstClass)นั้นมันไม่เท่ากัน ดังนั้นเมื่อฉันพยายามค้นหาทุกประเภทที่มีFirstClassเป็นพารามิเตอร์ทั่วไปฉันไม่พบเลย อะไรคือความแตกต่างระหว่างSystem.RuntimeTypeและSystem.Type? มีวิธีใดในการแก้ปัญหาของฉันหรือไม่?
90 c#  reflection 


3
เพิ่มคุณสมบัติ C # แบบไดนามิกที่รันไทม์
ฉันรู้ว่ามีคำถามบางอย่างที่ตอบคำถามนี้ แต่คำตอบมักจะเป็นไปตามแนวการแนะนำพจนานุกรมหรือชุดพารามิเตอร์ซึ่งใช้ไม่ได้กับสถานการณ์ของฉัน ฉันใช้ไลบรารีที่ทำงานผ่านการไตร่ตรองเพื่อทำสิ่งที่ชาญฉลาดมากมายกับวัตถุที่มีคุณสมบัติ สิ่งนี้ใช้ได้กับคลาสที่กำหนดไว้เช่นเดียวกับคลาสไดนามิก ฉันต้องก้าวไปอีกขั้นและทำบางอย่างตามบรรทัดต่อไปนี้: public static object GetDynamicObject(Dictionary<string,object> properties) { var myObject = new object(); foreach (var property in properties) { //This next line obviously doesn't work... myObject.AddProperty(property.Key,property.Value); } return myObject; } public void Main() { var properties = new Dictionary<string,object>(); properties.Add("Property1",aCustomClassInstance); properties.Add("Property2","TestString2"); var myObject = GetDynamicObject(properties); //Then use …

8
มีอย่างเช่น instanceOf (Class <?> c) ​​ใน Java หรือไม่
ฉันต้องการตรวจสอบว่าวัตถุoเป็นอินสแตนซ์ของคลาสCหรือคลาสย่อยของC. ตัวอย่างเช่นถ้าpเป็นของชั้นPointที่ฉันต้องการx.instanceOf(Point.class)ที่จะเป็นtrueและจะเป็นx.instanceOf(Object.class)true ฉันต้องการให้มันใช้งานได้กับประเภทดั้งเดิมแบบบรรจุกล่อง ตัวอย่างเช่นถ้าxเป็นIntegerแล้วควรจะเป็นx.instanceOf(Integer.class)true มีอย่างนั้นหรือ? ถ้าไม่ฉันจะใช้วิธีการดังกล่าวได้อย่างไร?

6
แก้ไขประเภทจากชื่อคลาสในแอสเซมบลีที่แตกต่างกัน
ฉันมีวิธีการที่ฉันต้องการแก้ไขประเภทของคลาส คลาสนี้มีอยู่ในแอสเซมบลีอื่นที่มีเนมสเปซคล้ายกับ: MyProject.Domain.Model ฉันกำลังพยายามดำเนินการดังต่อไปนี้: Type.GetType("MyProject.Domain.Model." + myClassName); วิธีนี้ใช้ได้ผลดีหากโค้ดที่กำลังดำเนินการนี้อยู่ในแอสเซมบลีเดียวกันกับคลาสที่ฉันกำลังพยายามแก้ไขอย่างไรก็ตามหากคลาสของฉันอยู่ในแอสเซมบลีอื่นรหัสนี้จะล้มเหลว ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการทำงานนี้ให้สำเร็จ แต่ฉันไม่มีประสบการณ์มากนักในการแก้ไขแอสเซมบลีและการสำรวจเนมสเปซภายในเพื่อแก้ไขประเภทของคลาสที่ฉันกำลังมองหา คำแนะนำหรือเคล็ดลับในการทำงานนี้ให้สำเร็จลุล่วงอย่างสง่างามมากขึ้น?
87 c#  .net  reflection 

12
ฉันจะทราบได้อย่างไรว่าวัตถุแต่ละประเภทอยู่ใน ArrayList <Object>
ฉันมี ArrayList ซึ่งประกอบด้วยองค์ประกอบต่าง ๆ ที่นำเข้าจากฐานข้อมูลซึ่งประกอบด้วยสตริงตัวเลขคู่และ ints มีวิธีใช้เทคนิคประเภทการสะท้อนเพื่อค้นหาว่าข้อมูลแต่ละประเภทแต่ละองค์ประกอบเก็บข้อมูลอะไรบ้าง? FYI: สาเหตุที่มีข้อมูลหลายประเภทเนื่องจากเป็นส่วนหนึ่งของโค้ดจาวาที่เขียนขึ้นเพื่อนำไปใช้กับฐานข้อมูลที่แตกต่างกัน


3
รับฟังก์ชั่นแทนที่ของคลาสย่อย
มีวิธีรับฟังก์ชั่น overriden ทั้งหมดของคลาสย่อยใน Python หรือไม่? ตัวอย่าง: class A: def a1(self): pass def a2(self): pass class B(A): def a2(self): pass def b1(self): pass นี่ฉันต้องการจะได้รับรายการ["a2"]สำหรับวัตถุของคลาสB(หรือสำหรับวัตถุชั้นเอง) ตั้งแต่ระดับแทนที่เพียงวิธีการเดียวคือBa2

1
วิธีการใช้. NET reflection เพื่อตรวจสอบชนิดอ้างอิง nullable
C # 8.0 แนะนำประเภทอ้างอิงที่ไม่มีค่า นี่คือคลาสธรรมดาที่มีคุณสมบัติเป็นโมฆะ: public class Foo { public String? Bar { get; set; } } มีวิธีการตรวจสอบทรัพย์สินชั้นใช้ประเภทอ้างอิง nullable ผ่านการสะท้อน?

1
ทำลายการเพิ่มประสิทธิภาพของ JIT พร้อมการสะท้อนกลับ
เมื่อเล่นซอกับการทดสอบหน่วยสำหรับคลาสซิงเกิลตันที่เกิดขึ้นพร้อมกันสูงฉันสะดุดกับพฤติกรรมแปลก ๆ ต่อไปนี้ (ทดสอบบน JDK 1.8.0_162): private static class SingletonClass { static final SingletonClass INSTANCE = new SingletonClass(0); final int value; static SingletonClass getInstance() { return INSTANCE; } SingletonClass(int value) { this.value = value; } } public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { System.out.println(SingletonClass.getInstance().value); // 0 // Change …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.