Maison  >  Article  >  développement back-end  >  Résumer les applications pratiques de la technologie de réflexion.

Résumer les applications pratiques de la technologie de réflexion.

零下一度
零下一度original
2017-06-23 15:00:351448parcourir

L'utilisation de la réflexion a déjà été résumée. Cet article combine un projet complet pour résumer l'application pratique de la réflexion.

Structure du projet

Comme indiqué ci-dessous :

Définir l'interface du plug-in

dans le projet ConsoleApplication6 Dans .IService, deux interfaces sont définies Run représente la conduite et Trun représente le pilotage Le code suivant :

 1 namespace ConsoleApplication6.IService 2 { 3     /// <summary> 4     /// 创建一个车的接口 5     /// </summary> 6     public interface ICarService 7     { 8         /// <summary> 9         /// 行驶10         /// </summary>11         void Run();12 13         /// <summary>14         /// 转向15         /// </summary>16         /// <param name="direction"></param>17         void Turn(Direction direction);18 19     }20 21     public enum Direction22     {23         East,24         Weast,25         South,26         North27     }28 }

.

Implémentation du programme de plug-in

Voici deux nouveaux projets pour implémenter des plug-ins, à savoir ConsoleApplication6.Service.BMW et ConsoleApplication6.Service.BenZ Le code est le suivant :

.
 1 namespace ConsoleApplication6.Service.BMW 2 { 3     public class BMWCarService: ICarService 4     { 5         /// <summary> 6         /// 行驶 7         /// </summary> 8         public void Run() 9         {10             Console.WriteLine("BMW Car Run!");11         }12 13         /// <summary>14         /// 转向15         /// </summary>16         /// <param name="direction"></param>17         public void Turn(Direction direction)18         {19             Console.WriteLine(string.Format("BMW Car turn:{0}", direction.ToString()));20         }21     }22 }
 1 namespace ConsoleApplication6.Service.BenZ 2 { 3     public class BenZCarService: ICarService 4     { 5         /// <summary> 6         /// 行驶 7         /// </summary> 8         public void Run() 9         {10             Console.WriteLine("BenZ Car Run!");11         }12 13         /// <summary>14         /// 转向15         /// </summary>16         /// <param name="direction"></param>17         public void Turn(Direction direction)18         {19             Console.WriteLine(string.Format("BenZ Car turn:{0}", direction.ToString()));20         }21     }22 }

Exécuter le programme

Ensuite, nous pouvons utiliser la réflexion pour exécuter le programme du plug-in, comme indiqué dans le code suivant :

 1 namespace ConsoleApplication6 2 { 3     class Program 4     { 5         static void Main(string[] args) 6         { 7             var assembly = Assembly.Load("ConsoleApplication6.Service.BMW");//也可以从配置文件中读取 8             var t = assembly.GetType("ConsoleApplication6.Service.BMW.BMWCarService");//也可以从配置文件中读取 9 10             //创建一辆车的实例11             var obj = Activator.CreateInstance(t);12             ICarService car = obj as BMWCarService;13             if (car != null)14             {15                 car.Run();16                 car.Turn(Direction.East);17             }18 19             Console.ReadKey();20         }21     }22 }

De cette façon, un simple programme de plug-in est complété en même temps, si nous développons un plug-in similaire. cadre, la technologie de réflexion sera largement utilisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:classe statiqueArticle suivant:classe statique