如何以及在哪里正确设置Castle Windsor v2.5 MVP Winforms

本文关键字:Windsor Castle v2 Winforms MVP 设置 在哪里 | 更新日期: 2023-09-27 17:58:55

我对Winforms场景中Castle Windsor的正确实现感到困惑,我找到的所有文档都是关于WCF和ASP.NET MVC的,所以我请求帮助在Windows窗体中正确实现Castle WindWindsor。现在这是我的代码。。。我从MVP的这种方法开始http://dotnetchris.wordpress.com/2009/02/16/creating-a-generic-model-view-presenter-framework/

我做了这个

public interface IPresenter<TViewModel>
{
    TViewModel View { get; set; }
    event EventHandler ViewInitialized;
    void OnViewInitialized(EventArgs e);
    event EventHandler ViewLoaded;
    void OnViewLoaded(EventArgs e);
}

基本形式为

public partial class MvpForm<TPresenter, TViewModel> : Form
    where TPresenter : IPresenter<TViewModel>
    where TViewModel : class

在第一部分之后,我的演示者是

public class PatientSearchCreatePresenter: IPresenter<IPatientFilterViewModel>
{
    IPatientBusinessService patient;
    /// <summary>
    /// Initializes a new instance of the <see cref="PatientFilterPresenter" /> class.
    /// </summary>
    public PatientSearchCreatePresenter(IPatientBusinessService Patient)
    {
        patient = Patient;
    }

我的搜索和创建病人的表单类似于这个

public partial class FormSearchCreatePatient : MvpForm<PatientSearchCreatePresenter,IPatientSearchCreateViewModel> , IPatientSearchCreateViewModel
{

我应该在哪里以及如何执行安装&视图的Castle组件和演示者服务属性的注册

非常感谢

如何以及在哪里正确设置Castle Windsor v2.5 MVP Winforms

以下是我以前的做法:

public class BusinessContainer : WindsorContainer
{
    public BusinessContainer()
    {
        RegisterComponents();
    }
    private void RegisterComponents()
    {
        // Presenters
        AddComponentWithLifestyle("HelloWorld.presenter", typeof(HelloWorldPresenter), LifestyleType.Transient);
    }
}
}

由于IoC容器的包含有点复杂,因此要了解完整的步骤,请查看此处。