我在4层的WinForm应用程序中工作:
我正在使用中间层来运行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等等,但是一周就会尝试不同的东西。
任何帮助将不胜感激
答案 0 :(得分:1)
可能是几个问题。最常见的是您包含了错误版本的DLL库(例如,没有丢失的方法)。最简单的方法是在反编译器中打开exe(例如Reflector)并逐步执行它。
另一个问题可能是错误的位数(但可能不是)。
答案 1 :(得分:0)
您必须确保在主Winforms应用程序中引用了外部项目dll