欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WCF的異常處理

 更新時間:2022年05月12日 14:38:20   作者:springsnow  
這篇文章介紹了WCF處理異常的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

介紹

WCF(Windows Communication Foundation) -異常處理:一般Exception的處理,F(xiàn)aultException和FaultException<T>的拋出和處理,使用IErrorHandler處理異常。

下面介紹第三種異常:FaultException<T>的拋出和處理

一、強類型化一個SOP錯誤類,傳遞需要用[DataContract]

/// <summary>
/// 錯誤信息實體類(用于錯誤契約FaultContract)
/// </summary>
[DataContract]
public class FaultMessage
{
    /// <summary>
    /// 錯誤信息
    /// </summary>
    [DataMember]
    public string Message { get; set; }

    /// <summary>
    /// 錯誤代碼
    /// </summary>
    [DataMember]
    public int ErrorCode { get; set; }
}

二、在操作協(xié)定中用[FaultContract]錯誤協(xié)定指定錯誤類型

[ServiceContract]
public interface IHello
{
    [OperationContract]
    [FaultContract(typeof(FaultMessage))]
    void HelloFaultExceptionGeneric();
}

三、在實現(xiàn)代碼中,定義一個方法,可以拋出一個FaultException<FaultMessage>的異常

/// <summary>
/// Hello類
/// </summary>
public class Hello : IHello
{
    /// <summary>
    /// 拋出FaultException<T>異常
    /// </summary>
    public void HelloFaultExceptionGeneric()
    {
        throw new FaultException<FaultMessage>(new FaultMessage { Message = "拋出FaultException<T>異常", ErrorCode = -1 }, "為了測試FaultException<T>用的");
    }
}

四、在客戶端中,可以捕獲FaultException<FaultMessage>的異常。FaultMessage用Detail屬性訪問。

protected void btnHelloFaultExceptionGeneric_Click(object sender, EventArgs e)
{
    ExceptionService.HelloClient proxy = new ExceptionService.HelloClient();
    try
    {
        proxy.HelloFaultExceptionGeneric();
    }
    catch (System.ServiceModel.FaultException<ExceptionService.FaultMessage> ex)
    {
        lblMsg.Text = string.Format("錯誤代碼:{0};錯誤信息:{1};錯誤原因:{2}",
            ex.Detail.ErrorCode.ToString(),
            ex.Detail.Message,
            ex.Reason.ToString());
    }
    finally
    {
        proxy.Close();
    }
}

到此這篇關(guān)于WCF異常處理的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#推送信息到APNs的方法

    C#推送信息到APNs的方法

    這篇文章主要介紹了C#推送信息到APNs的方法,涉及C#推送通知到蘋果APNs的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • C#反射在實際應(yīng)用中的實例代碼

    C#反射在實際應(yīng)用中的實例代碼

    C#反射在實際應(yīng)用中的實例代碼,需要的朋友可以參考一下
    2013-03-03
  • 詳解C#對路徑...的訪問被拒絕解決過程

    詳解C#對路徑...的訪問被拒絕解決過程

    這篇文章主要介紹了詳解C#對路徑...的訪問被拒絕解決過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • LZW壓縮算法 C#源碼

    LZW壓縮算法 C#源碼

    本文分享了一個LZW壓縮算法的C#源碼,有需要的朋友可以參考一下。
    2016-06-06
  • C#實現(xiàn)復制文件夾中文件到另一個文件夾的方法

    C#實現(xiàn)復制文件夾中文件到另一個文件夾的方法

    這篇文章主要介紹了C#實現(xiàn)復制文件夾中文件到另一個文件夾的方法,實例分析了C#實現(xiàn)文件夾的查找、判斷及文件復制相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#獲取鼠標在listview右鍵點擊單元格的內(nèi)容方法

    C#獲取鼠標在listview右鍵點擊單元格的內(nèi)容方法

    下面小編就為大家?guī)硪黄狢#獲取鼠標在listview右鍵點擊單元格的內(nèi)容方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#?AStar尋路算法詳解

    C#?AStar尋路算法詳解

    AStar算法是一種圖形搜索算法,常用于尋路。他是以廣度優(yōu)先搜索為基礎(chǔ),集Dijkstra算法和最佳優(yōu)先(best?fit)于一身的一種算法,本文主要介紹了AStar尋路算法的原理與實現(xiàn),需要的可以參考一下
    2023-03-03
  • C#讀寫注冊表的思路及代碼

    C#讀寫注冊表的思路及代碼

    這篇文章主要介紹了C#讀寫注冊表的思路及代碼,有需要的朋友可以參考一下
    2013-12-12
  • C#實現(xiàn)從位圖到布隆過濾器的方法

    C#實現(xiàn)從位圖到布隆過濾器的方法

    布隆過濾器(Bloom filter)是一種特殊的 Hash Table,能夠以較小的存儲空間較快地判斷出數(shù)據(jù)是否存在。常用于允許一定誤判率的數(shù)據(jù)過濾及防止緩存擊穿及等場景,本文將以 C# 語言來實現(xiàn)一個簡單的布隆過濾器,為簡化說明,設(shè)計得很簡單,需要的朋友可以參考下
    2022-06-06
  • C#實現(xiàn)縮放字體的方法

    C#實現(xiàn)縮放字體的方法

    這篇文章主要介紹了C#實現(xiàn)縮放字體的方法,涉及C#操作Matrix實現(xiàn)字體縮放的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評論