Lambda表达式和InvokeOperation

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)

BFr*_*ree 6

你的问题有点过于广泛,所以我在这里猜测,但这里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)