0

WCFWebサービスに接続されたクラスライブラリを呼び出すWPFウィンドウがあります。このウィンドウのコンストラクターは、クラスライブラリを呼び出してデータを取得します。

ソリューションを実行するとすべてが正常に機能しますが、ウィンドウをデザインモードで開こうとすると、次のエラーが発生します。

ServiceModelクライアント構成セクションでコントラクト'FinancesService.IAccountingService'を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったことが原因である可能性があります。

私はグーグルを試しました、しかしそれは私の問題が設定ファイルであると言うだけです、しかし私は私のメインプロジェクトに設定を持っています。

ありがとう

4

3 に答える 3

2

DesignerProperties.GetIsInDesignModeを使用して、デザインモードを検出し、Webサービスを呼び出そうとしないようにすることができます。

于 2012-11-25T18:05:22.080 に答える
0

Visual Studioは、デザイナからコントロールを何らかの形式にドロップすると、コントロールのコード(少なくともctor)を実行します。コントロールがVSによってインスタンス化され、コードにリモートエンドポイントに接続するためのコードが含まれている場合、コントロールはホスティングプロセスとして「通常の」プロセスを想定しているため、この例外が発生します。

最も簡単なのは、実行中のプロセスについてctorをチェックインすることです。devenv.exeの場合は、wcf connect呼び出しをスキップして、コントロールを表示できるようにすることができます。フォローアップの例外が発生しないように注意する必要がありますが、それは今では簡単な作業になるはずです。

于 2012-11-25T18:01:41.947 に答える
0

最も簡単な解決策は、WPFウィンドウのLoadedイベントハンドラーからWCFサービス呼び出しを実行することです。これにより、アプリケーションの応答性が向上します。

于 2012-11-25T18:03:31.727 に答える