2012-02-09 13 views
0

私はクッキーコンテナをメンバーとして持つクラスを持っています([DataMember]でマークされています)。私は[DataMemberを]属性を削除すると、サービスコールは、もちろん(だけで正常に動作しWCF経由でCookieContainerを返す方法は?

The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be 
used for communication because it is in the Faulted state. 

、クッキーコンテナがありません:私は試してみて、TCPのWebサービスの呼び出し後にこのクラスを返すときに、私は次の例外を取得しています戻ってきた)。

このオブジェクトを返すサービスコールが必要です。CookieContainerは、バイナリシリアライザを使用して簡単にシリアル化できます。

ここに私の質問があります:例外をスローせずにサービスがCookieContainerを返すようにするにはどうすればよいですか?

私はCookieContainerでバイナリシリアル化を行い、その後Convert.ToBase64Stringを介して文字列に変換できると考えましたが、これを行うにはより良い方法が必要です。

答えて

1

あなたはCookieContainerそのものを渡す必要はありません。あなたが渡す必要があるものは、私は、クッキーコンテナに含まれるデータだと思います。その場合、なぜクッキーコンテナの外にデータを引っ張らないで - それ以上は何も - 受信側のクッキーコンテナを越えているに合格し、再作成

あなたがサービスの境界に使う型は、データのシリアル化を支援するためにあります。サービス操作全体で任意の.NETタイプを渡すことはできません。 WCFはメッセージベースのプログラミングモデルです。データは渡すだけで、動作やクラスは使用しません。

関連する問題