反射小案例(菜单的可配置化)

Posted 风雪幻林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射小案例(菜单的可配置化)相关的知识,希望对你有一定的参考价值。

       刚开始学反射时,只是知道反射可以获取一个类里的各种信息(字段,属性,方法.....)!前面也只是列举了一些反射的基本语法,下面就通过一个简单小案例体会反射的用法:

       注:该案例通过控制台程序完成

 

反射的基本用法:http://www.cnblogs.com/fengxuehuanlin/p/5274607.html

用的的类库:

  调用的主方法:

注:由于是在主方法中调用类库,所以要引用类库这个程序集

控制台程序部分:

 class Program
    {
        static void Main(string[] args)
        {
            Assembly ass = Assembly.Load("EnumAssembly");    //获取类库下的所有类,这里要引用EnumAssembly这个类库,不然加载不到类库程序集
            Type[] types= ass.GetTypes();
            foreach (Type type in types)     //遍历每一个类
            {
                if (!(type.Name).StartsWith("I"))  //去掉接口类型
                {
                    MethodInfo method= type.GetMethod("GetFoodName");  //反射获取水果名方法
                    object obj = Activator.CreateInstance(type);
                    Console.WriteLine(method.Invoke(obj, null));   
                }
            }      
            Console.ReadKey();
        }
    }

 

类库:

    public class Banana:IFood
    {
        private const string FOODNAME = "香蕉";

        public string GetFoodName()
        {
            return FOODNAME;
        }
    }
    public class Apple : IFood
    {
        private const string FOODNAME = "苹果";

        public string GetFoodName()
        {
            return FOODNAME;
        }
    }

只需在这里添加一个类,并实现下面这个接口!就可以在主方法中动态的显示该内容

接口:

 interface IFood
    {
        string GetFoodName();
    }

 

以上是关于反射小案例(菜单的可配置化)的主要内容,如果未能解决你的问题,请参考以下文章

Java通过DOM解析假装实现Spring中Bean注入

小型公司案例 -- 局域网故障排查

Extjs MVC模式开发,循序渐进,Helloworld

Spring- Bean的实例化

IM服务器:一个使用imserver服务器进行聊天的web端案例

Spring入门案例(简单)