dll代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using ModuleBasemMethod;namespace StockMethod
{
    public class Stock :ModuleBase
    {        public string check(string  str)
        {
            return "你传入的参数是:" + str;
           
        }        public string Nulls()
        {            return "你调用的方法是无效的";
        }
    }
}
由于我引用了ModuleBasemMethod和继承了ModuleBase类所以造成type = ass.GetType("StockMethod.Stock",true,true)返回的错误提示是:
能加载文件或程序集“BaseMethod, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
如果去掉引用和继承就正常~这个问题怎么解决?

解决方案 »

  1.   

    看你的GetType是没错的应该是楼主的System.Reflection.Assembly.Load装载方法使用有问题
    不妨贴出来
      

  2.   

    估计搂主使用的是System.Reflection.Assembly.Load方法装载的程序集,改为:
    System.Reflection.Assembly.LoadFile看看,肯定可以
      

  3.   

    hi 你能将你的调用代码贴出来吗?以及你使用的 加载 Assembly的方式(静态邦定,动态加载)
      

  4.   

    using ModuleBasemMethod; 
    项目中没有添加dll引用吧
      

  5.   

    应该大家要家把加载代码帖出,如下:
     System.Reflection.Assembly ass;
         Type type ;
         object obj;
         try
         {
             ass = System.Reflection.Assembly.LoadFile(@"F:\Stock.dll");
             type = ass.GetType("StockMethod.Stock",true,true);
             .....略
         }
         catch (Exception ex)
         {
             Response.Write(ex + "<br>");
         }
         finally
         {
             ass = null;
             type = null;
             obj = null;
         }
        }
      

  6.   

    请使用LoadFrom进行Assembly的加载   具体的区别请参考  《net框架设计》一书
      

  7.   

    问题解决了~~是因为项目没有引用ModuleBasemMethod的dll,还有一个问题,loadfile()是不是一定是绝对路径呢?为什么我改相对路径就提示我一定要写绝对路径啊?
      

  8.   

    如果LZ使用的是Assembly的Load方法,那么搂主需要事先在工程中添加这个dll的引用;
    如果LZ使用的是Assembly的LoadFile方法,那么搂主不需要添加引用,但得传入程序集的完整路径,这个路径可以是绝对路径也可以是相对路径,但必须是完整的路径。