我正在学习Passive View模式,以便让我的C#WinForms应用程序更容易测试和维护.
它到目前为止运作良好但我想知道是否有更好的方法来实现事件而不是我现在这样做(并保持它们可测试).这就是它的样子(省略与此示例无关的代码).基本上我正在寻找的是如果有一种方法可以在演示者和表单中跳过连接事件,我宁愿在演示者中完成所有工作.
我的观点如下:
public interface IApplicationView
{
event EventHandler Find;
}
Run Code Online (Sandbox Code Playgroud)
我的主持人看起来像这样:
public class ApplicationPresenter
{
private IApplicationView _view;
private IApplicationDomain _domain;
public ApplicationPresenter(IApplicationView view) : this(view, new ApplicationDomain()) {}
public ApplicationPresenter(IApplicationView view, IApplicationDomain domain) {
_view = view;
_domain = domain;
HookupEventHandlersTo(view);
}
private void HookupEventHandlersTo(IApplicationView view)
{
view.Find += delegate { FindAction(); };
}
public void FindAction()
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我的WinForm看起来像:
public partial class Form1 : Form, IApplicationView
{
private ApplicationPresenter _presenter;
public event EventHandler …
Run Code Online (Sandbox Code Playgroud) 如果可能,在使用ServiceStack.Text.CsvSerializer时如何将分隔符从逗号更改为分号?
是否可以将事件与VB8中的另一个事件挂钩?我在C#中有这个代码...
public event ShowAboutDialog = delegate {};
private void hookupEvents() {
myButton.Click += ShowAboutDialog;
}
Run Code Online (Sandbox Code Playgroud)
我试图将其转换为VB8,但无法让它工作..
Public Event ShowAboutDialog As EventHandler
Private Sub HookupEvents()
AddHandler AboutMenuItem.Click, AddressOf ShowAboutDialog
End Sub
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在开发一个严重依赖外部DLL的应用程序,我的应用程序需要支持新版本的dll以及向后兼容旧版本.
是否有任何好方法让我的单元测试针对所有这些不同的dll版本,而不需要在新版本的api发布后立即重写测试?如何最好地处理?
谢谢!
是否可以在单独的服务器上安装SSRS 2008的IIS部分.我们有一个数据库服务器和一个Web服务器.是否可以在数据库服务器上安装SSRS2008的数据库部分,并在Web服务器上安装Web部件(Report Manager,..)?
这种情况有什么指导方针吗?
谢谢!
我正在寻找绑定或使用现有的快捷方式来关闭VS2008中所有可见的工具窗口.
VS2005有一个加载项可以做到这一点,但它在VS2008中似乎不起作用.
c# ×3
csv ×1
mbunit ×1
nunit ×1
passive-view ×1
servicestack ×1
ssrs-2008 ×1
testing ×1
unit-testing ×1
vb.net ×1
winforms ×1