c# - Lambda 表达式和 InvokeOperation

标签 c# .net lambda wcf-ria-services invoke

我有这段代码,但不知道如何通过 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  
    {                 
    }
} 

最佳答案

你的问题有点太宽泛,所以我在这里猜测,但 lambda 表达式的唯一地方是 Hook 到事件中。因此,您可以这样做,而不是使用单独的 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  
           {                 
           }
       } 
     }

关于c# - Lambda 表达式和 InvokeOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9978564/

相关文章:

C++11 lambda 无法访问引用

c# - 使用 Exists 谓词执行 .. While.. 操作。访问修改后的闭包?

c# - 更改每个文件的下载位置和名称

c# - 使用 C# 开发网站或应用程序是否需要许可证?

c# - 识别显示器

.net - 如何将消息从一个程序传递到另一个程序?

java - 如何确定使用lambda实现泛型FunctionalInterface的Bean的类型参数?

javascript - 基于下拉选择的显示/隐藏控件 mvc 4 razor c#

c# - 如何连接 ReadOnlyCollection<string> 和 IList<string>

.net - .NET 中 long 和 double 的最大值与大小