zoukankan      html  css  js  c++  java
  • 学习c#反射的一个例子

    using System;
    using System.Reflection;

    namespace TestReflection
    {
      class Program
      {
        static void Main(string[] args)
        {
          IName name = AbstractFactory.GetName();
          name.ShowName();
        }
      }

      //抽象工厂类
      public class AbstractFactory
      {
        public static IName GetName()
        {
          string assemblyName = "TestReflection"//类库名字

          
    //className的值以后可以在Web.config动态获取
          
    //把className赋值为:TestReflection.EnglishName,将显示英文名字
          string className = "TestReflection.ChineseName";//类名字
          IName name = (IName)Assembly.Load(assemblyName).CreateInstance(className);
          return name;
        }
      }

      //声明一个接口,它有一个显示“名字”的功能
      public interface IName
      {
        void ShowName();
      }

      //实现接口,显示中国名字
      public class ChineseName : IName
      {
        public void ShowName()
        {
          Console.WriteLine("我中文名字叫:罗宾汉");
          Console.ReadLine();
        }
      }

      //实现接口,显示英文名字
      public class EnglishName : IName
      {
        public void ShowName()
        {
          Console.WriteLine("My name is : Robin Hood");
          Console.ReadLine();
        }
      }
    }
  • 相关阅读:
    003 Rabbitmq的简单队列
    002 Rabbitmq的安装
    001 消息中间件--Rabbitmq
    013 mybatis整合
    013 Durid监控
    012 druid数据源
    011 嵌入式容器
    集成支付宝IOS
    2015起航,
    python 创建用户
  • 原文地址:https://www.cnblogs.com/ewyb/p/2244411.html
Copyright © 2011-2022 走看看