小编Lan*_*ers的帖子

单元测试异步void事件处理程序

我已经在c#winforms中实现了MVP(MVC)模式。

我的视图和演示者如下(没有所有的MVP胶水):

public interface IExampleView
{
    event EventHandler<EventArgs> SaveClicked;
    string Message {get; set; }
}

public partial class ExampleView : Form
{
    public event EventHandler<EventArgs> SaveClicked;

    string Message { 
        get { return txtMessage.Text; } 
        set { txtMessage.Text = value; } 
    }

    private void btnSave_Click(object sender, EventArgs e)
    {
        if (SaveClicked != null) SaveClicked.Invoke(sender, e);
    }
}

public class ExamplePresenter
{
    public void OnLoad()
    {
        View.SaveClicked += View_SaveClicked;
    }

    private async void View_SaveClicked(object sender, EventArgs e)
    {
        await Task.Run(() => 
        { …
Run Code Online (Sandbox Code Playgroud)

c# events unit-testing winforms async-await

5
推荐指数
1
解决办法
1368
查看次数

使用表达式树而不是反射来获取和设置对象属性

我想动态获取和设置对象属性,如下所示:

public class Person
{
    public string Name {get; set; }
}

public class Testing
{
    public void Run()
    {
        var p = new Person();

        SetValue(p, "Name", "Henry");

        var name = GetValue(p, "Name");
    }
}
Run Code Online (Sandbox Code Playgroud)

请问我可以获得使用动态方法(或表达式树)创建 GetValue 和 SetValue 方法的帮助吗?

我打算将编译后的表达式保存在字典中,以加快将来的 get/set 调用速度。

c# reflection expression-trees dynamic-method

3
推荐指数
1
解决办法
2160
查看次数