ホームページ  >  記事  >  バックエンド開発  >  反射技術の実際の応用を要約します。

反射技術の実際の応用を要約します。

零下一度
零下一度オリジナル
2017-06-23 15:00:351409ブラウズ

リフレクションの使用については以前にまとめましたが、この記事では、リフレクションの実践的な応用をまとめた完全なプロジェクトをまとめています。

プロジェクトの構造

は以下のとおりです:

プラグインインターフェイスを定義します

プロジェクト ConsoleApplication6.IService では、2 つのインターフェイスが定義されています。次に示すように、Run は運転を表し、Trun はステアリングを表します。次のコード:

 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 }

プラグイン実装

プラグイン プログラムを実装するために、ここで 2 つの新しいプロジェクト、つまり ConsoleApplication6.Service.BMW と ConsoleApplication6.Service.BenZ が作成されます。コードは次のとおりです。

 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 }

プログラムを実行します

次に、次のコードに示すように、リフレクションを使用してこのプラグイン プログラムを実行できます。同時に、同様のプラグインフレームワークを開発すれば、リフレクション技術にも幅広く活用できると考えられます。

以上が反射技術の実際の応用を要約します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:静的クラス次の記事:静的クラス