1

不明なタイプをクライアントからwcfサービスに渡す必要があります。

タイプはサービスに認識されていません。

たとえば、シリアル化のインスタンスを作成してサービスに送信するクラスCustomerがあります。逆シリアル化する必要がある場合に問題が発生し、desrializedオブジェクトをにキャストするためにタイプを指定する必要があります。

タイプをシリアル化できません。試行すると、次のエラーが発生します。

{"Type 'System.RuntimeType' with data contract name 
 'RuntimeType:http://schemas.datacontract.org/2004/07/System' is not expected. Consider 
  using a DataContractResolver or add any types not known statically to the list of 
  known types - for example, by using the KnownTypeAttribute attribute or by adding 
  them to the list of known types passed to DataContractSerializer."}

この問題の回避策を見つける必要があります、何かアイデアはありますか?

要約すると:

不明なタイプをWCFサービスに送信するための回避策を探しています。

4

1 に答える 1

2

もう一方の端がそれについて何も知らない場合(コメント)、おそらく逆シリアル化することはできません。タイプベースのシリアライザー(BinaryFormatter / NetDataContractSerializer)でもそれを行うことはできませんでした。

完全に外部データを送信する場合は、基本的にXMLやJSONなどに制限されますが、それでも意味は少しあいまいです(<id>123<id>文字列?int?浮動小数点?長さ?)。

WCFは、シナリオにはあまり適していません(他のほとんどのコントラクトベースのスタックも、ほとんどのシステムは、受信データを理解できることを期待しています)。

于 2012-04-13T23:14:03.887 に答える