2012-01-18 10 views
3

私はwcfプロジェクトで作業中です抽象クラスを作成できませんか?

maxStringContentLengthを超過した大きなオブジェクトを持つサービスを呼び出す前にすべてがうまくいっています。その問題を解決する

、私は2M

にデフォルトの8192からその値を変更するには、クライアントとサーバー側の両方で設定ファイルを変更し、私は中に、「抽象クラスを作成することはできません」と言うFaultException例外を取得私のサービスの呼び出し、そして私のサービスコードのいずれかの前には

を実行した例外の詳細が原因、それがtrueにIncludeExceptionDetailInFaultsを設定することで、作成した例外かもしれないし、その値がうまくSystem.MemberAccessException

であると言いますロケールの理由によっては、これはまったくの例外ではありません。私はそれを英語に翻訳して、何かを意味するように翻訳しました

何が問題なのでしょうか?ありがとう

+0

これを理解するには、さらに詳しい情報が必要になります。サービス契約と実装のコードを投稿してください。 –

+0

サービススケルトンとサービスの設定を設定ファイルに投稿できますか?ありがとう。 – Rajesh

+0

ありがとう。これは解決されました。それは実際に自分のコードの間違いであることが判明しています。抽象データコントラクトはクライアント側で通常のクラスに変換されるため、それらの一部は正しくインスタンス化されません。私は実際の問題を認識する前に自分の設定ファイルに問題があると思っていたし、なぜwcfがサーバとクライアントのデータコントラクト間の抽象度の分担をサポートしていないのかについて多くの議論をしていた。 – weidi

答えて

2

この問題は解決されました。これは、Visual Studioを使用してクライアント側でサービス参照を自動的に生成する場合、wcfサーバー側で抽象クラスと定義されているデータコントラクトが具象クラスに変換されるためです。これらの具体的なクラスを意図せずにインスタンス化すると、ランタイム例外が発生する可能性があります。

+7

ですが、この問題の具体的な解決方法や回避策はありますか?あなたの答えを読んで、私が何をすることができるのか分かりません。 – Stephan

関連する問題