网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

关于反射技术的实际应用

这篇文章运用简单易懂的例子给大家介绍关于反射技术的实际应用,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联是一家专业提供龙胜企业网站建设,专注与成都做网站、成都网站设计、HTML5建站、小程序制作等业务。10年已为龙胜众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

项目结构

如下图:

关于反射技术的实际应用

定义插件接口

在项目ConsoleApplication6.IService中,定义了两个接口,Run代表行驶,Trun代表转向,如下代码:

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

插件程序实现

这里新建了两个项目分别实现插件程序,分别是ConsoleApplication6.Service.BMW和ConsoleApplication6.Service.BenZ,代码如下:

 1 namespace ConsoleApplication6.Service.BMW 2 { 3     public class BMWCarService: ICarService 4     { 5         ///  6         /// 行驶 7         ///  8         public void Run() 9         {10             Console.WriteLine("BMW Car Run!");11         }12 13         /// 14         /// 转向15         /// 16         /// 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         ///  6         /// 行驶 7         ///  8         public void Run() 9         {10             Console.WriteLine("BenZ Car Run!");11         }12 13         /// 14         /// 转向15         /// 16         /// 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 }

这样,一个简单的插件程序就完成了,同时,如果我们开发类似的插件框架,就会大量使用到反射技术。

关于关于反射技术的实际应用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享题目:关于反射技术的实际应用
当前路径:http://bjjierui.cn/article/jdoeio.html

其他资讯