zoukankan      html  css  js  c++  java
  • 反射实例化一个未知的类(使用System.AppDomain类)

    第一步,新建一个类库,写入代码如下:

    +展开
    -C#
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace wangjun
    {
        public class wangjun
        {
            public int Sum(int i, int j)
            {
                return i + j;
            }
        }
    }



    第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:

    +展开
    -C#
    ///System.AppDomain类拥有
    ///CreateInstance()
    ///CreateInstanceAndUnWrap()
    ///CreateInstanceFrom()
    ///CreateInstanceFromAndUnwrap()
    ///这四个静态方法,通过它们可以创建一个在编译期间未知的类的实例,
    ///例:
    using System;
    using System.Reflection;

    class program
    {
        static void Main()
        {
            object obj = AppDomain.CurrentDomain.CreateInstance("wangjun""wangjun.wangjun");
            Console.WriteLine(obj);
        }
    }


      注意:我加载程序集时使用的是"wangjun" 字符串"wangjun"代表的是程序集的名称,是我在建立类库时在类库的项目中点右键属性在这个里面设置的名称,刚才加载的不是物理文件的名称,物理文件件的名称是"wangjun.dll",如果Assembly.Load()静态方法里面你如果添入物理名称的话,它会显示找不到文件FileNotFond

    运行结果 System.RunTime.Remoting.ObjectHandle

  • 相关阅读:
    【转载】Nginx负载均衡之后碰到的问题
    【转载】Nginx
    【转载】大型网站架构系列之一,前言,不得不考虑的问题
    【转载】Windows上搭个Nginx集群环境玩玩
    [转载]反射
    【转载】Nginx 简介
    【转载】系统性能调优吐血总结分享
    【转载】nginx for windows: 让nginx以服务的方式运行
    poj2377
    poj2371
  • 原文地址:https://www.cnblogs.com/cpcpc/p/2123068.html
Copyright © 2011-2022 走看看