Assembly ass = Assembly.LoadFrom(@"C:\Inetpub\SmsSln\ThirdSmsControl\bin\Debug\ThirdSmsControl.dll");
            Type tp = ass.GetType("ThirdSmsControlDLL");
            MethodInfo mi = tp.GetMethod("C_Register");在 ass.GetType("ThirdSmsControlDLL") 返回的tp为null?

解决方案 »

  1.   

    你应该是少写了类型的命名空间名字,如果你的ThirdSmsControlDLL属于一个名字空间的话。
      

  2.   

    名字空间加上去也是一样返回为null
      

  3.   


    //dll file
    using System;
    using System.Collections.Generic;
    using System.Text;namespace YouNameSpaceName
    {
        public class ThirdSmsControlDLL
        {
            public void C_Register()
            {        }
        }
    }//test file
    using System;
    using System.Collections;
    using System.Text;
    using System.Reflection;namespace test
    {
     
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Assembly ass = Assembly.LoadFrom(@"c:\ThirdSmsControl.dll");
                    Type tp = ass.GetType("YouNameSpaceName.ThirdSmsControlDLL", true);
                    MethodInfo mi = tp.GetMethod("C_Register");                Console.WriteLine(tp);
                    Console.WriteLine(mi);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }            Console.Read();
            }
        }    
    }
    以上代码正确。
    你试一试这样会出错吗?
      

  4.   

    用IL反汇编程序看一下你的c:\ThirdSmsControl.dll是否确实存在这么一个类型。