关于反射

namespace TestSpace
{
    delegate object TestDelegate(object value);
    public class TestClass
    {
        public TestClass()
        {
        }
        public string GetValue(string value)
        {
            return value;
        }
    }
}

在有DLL的情况下

                Assembly a = Assembly.Load("TestSpace");
                object obj = a.CreateInstance("TestSpace.TestClass");

但是如果没有DLL上面的写法就出错了,本以为反射一定要有DLL不过换了一种方式却可以

        Assembly a = Assembly.GetAssembly(Type.GetType("TestSpace.TestClass"));
        object obj1 = a.CreateInstance("TestSpace.TestClass");

我有些奇怪,不知道什么原因

粗略的又调试了一下,应该是这样的在没有dll情况下反射的是本程序集下的,也就是说当前程序集已经加载了

原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1268792.html