Maison > développement back-end > Tutoriel C#.Net > Résumer les applications pratiques de la technologie de réflexion.

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

零下一度
Libérer: 2017-06-23 15:00:35
original
1468 Les gens l'ont consulté

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 }
Copier après la connexion

.

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 }
Copier après la connexion
 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 }
Copier après la connexion

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 }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal