2012-03-29 11 views
1

私は、エラーを記述する必要があります。エラーコードの表示方法サンプルwcfサービス?

エラーコード:

101: Syntax Error 
102: id already exists 
103: User already exists 
104: Unsupported id 
105: Server Error, try again or contact administrator 

私にその上のサンプル残りのWCFサービスを教えてください... 私は、WCFサービスを書き込むことが新しいです。

答えて

1

IServce1.cs

[ServiceConstract] 
public interface IService1 
{ 
    [OperationContract] 
    string GetErrorCode(int er); 
} 

Service1.svc.cs

public class Service1:IService1 
{ 
    public string GetErrorCode(int er) 
    { 
    string description; 
    switch(er) 
    { 
     case 101: description="Syntax Error"; break; 
     case 102: description="ID already exists"; break; 
     case 103: description="User already exists"; break; 
     case 104: description="Unsupported ID"; break; 
     case 105: description="Server Error, try again or contact administrator"; break; 
     default: //Write whatever you want to throw to user. 
     } 
    return description; 
    } 
} 

別の方法を使用して、クライアント・アプリケーションでの使用これをあなたが推測どこエラーが発生するあなたは自分のカスタム例外を作成し、それぞれのコードを関連付けることができます。また、これらをデータベーステーブルに格納して、IDを使用することでそこからのコードで適切なエラーをスローすることができます。

+0

すべてが真である場合は、これらのすべてをチェックして、結果を表示する必要があります。カスタムエラーの簡単なサンプル – user1237131

+0

は、ブレークの代わりにフォールスルーとしてケースを考慮します。さらに、これらのコードごとにカスタム{throw new exception}を記述している場合、例外ごとに1つのコードしか割り当てられません。すべてがスローされると、いつでもすべての 'description'がスローされます例外が発生します。 – Milee

+0

さらに見栄えを良くするために、これらの例外をすべて別のクラスに記述し、このクラスのスイッチケースを使用することをお勧めします。実際にtry/catchを使用して実際のコードを駄目にすることはありません:) – Milee

1

のDataContract

で次にWebサービス自体に、FaultExceptionをスローすることを整数プロパティ(ID)を持つクラス(それはここでは簡単のためにYourErrorClass呼びます)とStringプロパティ(説明)

飾るの構築適切に発行された値を使用します。

これを行うときは、キャプチャする場所に応じて値を表示するようにしてください。

+1

[FaultContractAttribute] – GazTheDestroyer

+0

でサービスを飾ることを覚えておいてください。 – user1237131

+0

これに従う - それは理想的です:http://msdn.microsoft.com/en-us/library/ms752208.aspx – Chris

関連する問題