반영의 사용은 이전에 요약되었습니다. 이 기사는 완전한 프로젝트를 결합하여 반사의 실제 적용을 요약합니다.
는 아래와 같습니다:
ConsoleApplication6.IService 프로젝트에서는 두 개의 인터페이스가 정의됩니다. 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 }
여기에는 플러그인 프로그램을 구현하기 위해 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 }
다음으로 다음 코드에 표시된 것처럼 리플렉션을 사용하여 이 플러그인 프로그램을 실행할 수 있습니다.
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 }
이런 방식으로 간단한 플러그인 프로그램이 완성되는 것과 동시에, 유사한 플러그인 프레임워크를 개발한다면 이는 반영 기술에 광범위하게 사용될 것입니다.
위 내용은 반사 기술의 실제 적용을 요약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!