FaultContract Based 的Exception Handling in WCF

1、Create a error class just like this

namespace TeamService.Projects

{

    [DataContract]

    public class ProjectServiceError

    {

        private string operation;

        private string errorMessage;

 

        [DataMember]

        public String Operation

        {

            get { return operation; }

            set { operation = value; }

        }

 

        [DataMember]

        public String ErrorMessage

        {

            get { return errorMessage; }

            set { errorMessage = value; }

        }

    }

}


2、通过FaultContract将其运用到Service Contract中制定的Operation上面

 

using TeamService.Data;

namespace TeamService

{

    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IProjectService" in both code and config file together.

    [ServiceContract]

    public interface IProjectService

    {

        [OperationContract]

        [FaultContract(typeof(TeamService.Projects.ProjectServiceError))]

        int CreateMember(MyMember myMember);

 

 

 

 3、在Service Implementation中以抛出Exception的方式植入这个

TeamService.Projects.ProjectServiceError对象

 

   public int CreateMember(MyMember myMember)

        {

            if (myMember == null)

            {

                ProjectServiceError err = new ProjectServiceError();

                err.Operation = " CreateMember";

                err.ErrorMessage = "Input parameter is null.";

 

                throw new FaultException(err.Operation + "êo" + err.ErrorMessage);

            }

 

后面还有代码,不写了

 

4、客户端调用

 

private void button1_Click(object sender, RoutedEventArgs e)

        {

            TeamClient.ProjectServiceReference.ProjectServiceClient sv = new ProjectServiceClient();

 

            MyMember mb = null;

            try

            {

                if (sv != null)

                {

                    sv.CreateMember(mb);

                }

 

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

 

 5、效果显示:

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值