异步通信框架

时间:2015-07-23 06:31:43

标签: c# wcf windows-phone-8 windows-phone windows-phone-8.1

我的Windows Phone 8应用程序异步连接到远程服务器上托管的WCF服务以执行CRUD操作。 Currenlty在代码中手动处理所有trasactions,例如处理各种异常,在操作期间丢失连接或从代码返回的任何异常。只是想知道是否有任何可用于处理这些常见场景的框架,以便缩短开发时间。

2 个答案:

答案 0 :(得分:0)

您可以迁移到 Reactive Extensions (Rx)。

MSDN:

  

Rx .NET是一个托管库,提供用于编写​​被动,基于推送的应用程序的API。反应性应用程序受其环境驱动。在反应模型中,数据流,异步请求和事件表示为可观察序列。应用程序可以订阅这些可观察序列,以在新数据到达时接收异步消息。 Reactive Extensions允许应用程序使用查询运算符组合这些序列。 More...

它有一些非常常规的重试和错误处理。

source.Retry(3).Catch(...)

好消息它也适用于Windows Phone 8.1

更多

答案 1 :(得分:-1)

  

您可以使用UnhandledExceptionEventHandler

使用System;

公共类示例 {

public static void Example()

{

    AppDomain currentDomain = AppDomain.CurrentDomain;
    currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);

    try
    {
        throw new Exception("First Handled Exception");
    }
    catch (Exception e)
    {
        Console.WriteLine("Catch clause caught : " + e.Message);
    }

    try
    {
        throw new Exception("Second Handled Exception");
    }
    catch (Exception e)
    {
        Console.WriteLine("Catch clause caught : " + e.Message);
        // throw;
        // throw new Exception("Re-throw second exception", e);
    }

    // throw new Exception("Un-Handled Exception");
}

static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
    Exception e = (Exception)args.ExceptionObject;
    Console.WriteLine("Exception Message: {0}", e.Message);
}

public static void Main()
{
    Example();
}

}