zoukankan      html  css  js  c++  java
  • 反射

    新建一个控制台应用程序

     Bike中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 反射
    {
        public class Bike : ICar
        {
            public void Light()
            {
                Console.WriteLine("我有1个灯");
            }
    
            public void Wheel()
            {
                Console.WriteLine("我有2个轮子");
            }
        }
    }
    View Code

    Car中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 反射
    {
        public class Car : ICar
        {
            public void Light()
            {
                Console.WriteLine("我有8个灯");
            }
    
            public void Wheel()
            {
                Console.WriteLine("我有4个轮子");
            }
        }
    }
    View Code

    Factory中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    //引用配置和反射
    using System.Configuration;
    using System.Reflection;
    namespace 反射
    {
        public class Factory
        {
            private static string InterfaceName = ConfigurationManager.AppSettings["InterfaceName"];
    
            public ICar GetCar()
            {
                //第一个是程序集名称,第二个是命名空间.类名
                return (ICar)Assembly.Load("反射").CreateInstance("反射" + "." + InterfaceName);
            }
        }
    }
    View Code

    ICar中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 反射
    {
        public interface ICar
        {
            void Wheel();
            void Light();
    
        }
    }
    View Code

    Program中的代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 反射
    {
        class Program
        {
            static void Main(string[] args)
            {
                Factory factory = new Factory();
                ICar Result = factory.GetCar();
                Result.Light();
                Result.Wheel();
                Console.ReadLine();
            }
        }
    }
    View Code

    App.config中的配置

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
        </startup>
    
      <appSettings>
        <add key="InterfaceName" value="Car" />      
      </appSettings>
      
      
    </configuration>
    View Code
  • 相关阅读:
    【C++】C++中的流
    【C++】C++中类的基本使用
    【Python】解析Python中的条件语句和循环语句
    【C++】C++中的分离式编译
    【C++】C++中assert和ENDEGU预处理语句
    【C++】C++中的函数的基本使用
    【算法】解析IEEE 754 标准
    【ThinkPHP】解析ThinkPHP5创建模块
    【C++】C++中的迭代器
    【算法】解析位运算
  • 原文地址:https://www.cnblogs.com/Luck1996/p/12005566.html
Copyright © 2011-2022 走看看