抛出异常:'System.MissingMethodException'

时间:2017-04-17 20:38:00

标签: c# visual-studio-2015 .net-4.6.1

我在4层的WinForm应用程序中工作:

  1. DAL(数据访问)
  2. BOL(商务对象)
  3. BAL(商务访问)
  4. INT(中级访问)。
  5. 我正在使用中间层来运行Presentation层所需的任何操作,试图让它独立,因为我们可以在WinForm,ASP等中使用它。

    我创建了一个执行这些操作的类:

    // Clase: ProjectStatusMID
    using System.Collections.Generic;
    
    namespace Trevo.FrameWork
    {
       public class ProjectStatusMID
       {
          #region Propiedades
    
          private ProjectStatusBOL _Data = new ProjectStatusBOL();
          private ProjectStatusBAL _Operations = new ProjectStatusBAL();
    
          private Acciones _Action = Acciones.Nada;
    
          #endregion Propiedades
    
          public ProjectStatusBOL Data
          {
             get { return _Data; }
             set
             {
                _Data = value;
             }
          }
    
          public ProjectStatusBAL Operations
          {
             get { return _Operations; }
             set
             {
                _Operations = value;
             }
          }
    
          public Acciones Action
          {
             get { return _Action; }
             set
             {
                _Action = value;
             }
          }
    
          public int IDProject
          {
             get { return _Data.IDProject; }
             set
             {
                _Data.IDProject = value;
             }
          }
    
          public List<Codigos> ProjectsList
          {
             get { return LoadProjects(); }
          }
    
          public ProjectStatusMID()
          {
             //Load();
          }
    
          public void Load()
          {
             Operations.Consultar(Data);
          }
    
          public List<Codigos> LoadProjects()
          {
             List<Codigos> oRet = new List<Codigos>();
    
             MyProjectsBAL _Operations = new MyProjectsBAL();
             MyProjectsBOL _Data = new MyProjectsBOL();
    
             List<MyProjectsBOL> _MyList = _Operations.Lista(_Data);
    
             foreach (MyProjectsBOL o in _MyList)
             {
                oRet.Add(new Codigos(o.IDProject, o.Project));
             }
    
             return oRet;
          }
    
       }
    }
    // Clase: ProjectStatusMID
    

    在前端(在本例中为WinForm),我们按如下方式对此类进行实例化:

     ProjectStatusMID OO = new ProjectStatusMID();
    

    因此,在调用其中一种方法时会出现问题:

         parProject.DataSource = OO.LoadProjects();
    

    所有内容都被引用,应用程序编译没有任何问题,包含该类的项目是分离项目中解决方案的一部分(与任何其他层一样),但是我们有以下错误:

    发生了

    System.MissingMethodException   的HResult = -2146233069   Message =Métodonoencontrado:'System.Collections.Generic.List`1 Trevo.FrameWork.ProjectStatusMID.LoadProjects()'。   来源= WorkLoadPresentation   堆栈跟踪:        zh Trevo.FrameWork.PS_ProjectStatus_Datos.CargarListas()        zh Trevo.FrameWork.PS_ProjectStatus_Datos.PS_ProjectStatus_Datos_Load(Object sender,EventArgs e)zh C:\ Users \ fbravo \ OneDrive \ Particular_Sistemas \ WorkLoad \ WorkLoadPresentation \ ProjectStatus \ PS_ProjectStatus_Datos.cs:línea25   InnerException:

    我试图让这个类保持静态,重新创建整个应用程序,删除GAC等等,但是一周就会尝试不同的东西。

    任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

可能是几个问题。最常见的是您包含了错误版本的DLL库(例如,没有丢失的方法)。最简单的方法是在反编译器中打开exe(例如Reflector)并逐步执行它。

另一个问题可能是错误的位数(但可能不是)。

答案 1 :(得分:0)

您必须确保在主Winforms应用程序中引用了外部项目dll