0

performSqlOperationA()エンドポイントで公開される 3 つのメソッド( 、performSqlOperationB()、および) を使用して (ステートレス) WC​​F サービスを作成するとしますperformSqlOperationC()。各メソッドは、データを SQL データベースに挿入します。

私のオフィスで見た方法では、各メソッドは SqlConnection オブジェクトを初期化するコードから始まります。各メソッドは、安全に破棄するためのコードで終了します。

各メソッドでこれらのことを行うことなく、各メソッドで SqlConnection オブジェクトが初期化および破棄されるように、これらの WCF メソッドをコーディングするための良い方法は何ですか? WCF メソッドのクラスのコンストラクターで接続を初期化できることはわかっていますが、破棄についてはわかりません... 呼び出しをusingブロックにラップすることはできません。

私がよく知っているソリューションの 1 つはPostSharpです。これにより、各メソッド呼び出しの開始時と終了時に特定のコードを自動的に実行する属性を設定できますが、.net フレームワークのみでこれを行うことが非常に望ましいでしょう。

4

1 に答える 1

3

usingベストプラクティスは、ステートメントを使用して、各メソッド呼び出し(またはWCFサービス操作から呼び出されるプライベートデータアクセスメソッド)でSqlConnectionオブジェクトを初期化して破棄することです。

public void performSqlOperationA()
{
    ...
    using(SqlConnection connection = ...)
    {
        ...
    }
    ...
}

これが気に入らないのは何ですか?

于 2010-06-11T15:08:46.613 に答える