Avatar ·

كيفية التحقق مما إذا كان النوع يطبق واجهة معينة باستخدام الانعكاس في C#

مرحباً بالجميع! أنا مطور C# مبتدئ، وواجهت مشكلة مع الانعكاس. لدي مكتبة حيث يمكن للمستخدمين تمرير فئاتهم الخاصة. أحتاج إلى التحقق ديناميكياً مما إذا كان النوع المُمرر يطبق واجهة معينة، لكي أتمكن لاحقاً من استدعاء دوالها.\n\nإليك مثال: هناك واجهة IPlugin وعدة فئات تطبقها. أحصل على النوع عبر Type.GetType("SomeClass") وأريد التحقق مما إذا كانت هذه الفئة تطبق IPlugin. جربت استخدام Type.IsAssignableFrom ولكني أرتبك بشأن أي نوع يجب تمريره. كما رأيت دالة GetInterfaces()، لكني لست متأكداً مما إذا كان هذا هو الحل الأفضل.\n\nإليك كود مبسط:\n\n```csharp\npublic interface IPlugin {\n void Execute();\n}\n\npublic class MyPlugin : IPlugin {\n public void Execute() { Console.WriteLine("Hello"); }\n}\n\n// في وقت التشغيل أنا