我已经在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) 我想动态获取和设置对象属性,如下所示:
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 调用速度。