Dev*_*per 1 .net c# lambda invoke wcf-ria-services
我有这个代码,无法弄清楚如何通过Lambda表达式简化它?
public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state)
{
InvokeOperation<List<DivisionHierarchy>> obj = this.Context.GetAllDivisions();
obj.Completed += new EventHandler(obj_Completed);
}
void obj_Completed(object sender, EventArgs e)
{
try
{
if (sender is InvokeOperation<List<DivisionHierarchy>>)
{
ObservableCollection<DivisionHierarchy> divisions =
new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value);
}
}
catch
{
}
}
Run Code Online (Sandbox Code Playgroud)
你的问题有点过于广泛,所以我在这里猜测,但这里lambda表达式的唯一地方是挂钩事件.因此,您可以执行以下操作,而不是使用单独的obj_Completed方法:
public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state)
{
InvokeOperation<List<DivisionHierarchy>> obj = this.Context.GetAllDivisions();
obj.Completed += (sender, e) =>
{
try
{
if (sender is InvokeOperation<List<DivisionHierarchy>>)
{
ObservableCollection<DivisionHierarchy> divisions =
new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value);
}
}
catch
{
}
}
}
Run Code Online (Sandbox Code Playgroud)