6

WCF サービスを作成していて、サービスの構成を変更できるように、いくつかのカスタム構成要素 (Custom ConfigurationSection や ConnectionStringSettings など) を公開したいと考えています。

私のカスタム構成要素の 1 つは、System.Configuration.ConfigurationElementCollection. WCF サービスを開始しようとすると、次のエラー メッセージが表示されます...

タイプ 'System.Configuration.ConfigurationElementCollection' をシリアル化できません。これを DataContractAttribute 属性でマークし、シリアル化するすべてのメンバーを DataMemberAttribute 属性でマークすることを検討してください。

このタイプの DataContract を実装する方法はありますか? [DataContract] 属性でマークされた継承クラスがあります。

4

2 に答える 2

4

今日、この問題をヒットしてください。プロジェクトをマシンからマシンに移動する際に問題が発生したため、混乱しました。この記事は関連しているようです:

http://blogs.msdn.com/youssefm/archive/2009/08/10/serializing-plain-old-clr-objects-poco-types-with-datacontractserializer.aspx

リンクが腐敗した場合に要約すると、この問題はランタイム 3.5 で発生し、ランタイム 3.5 SP1 で解消されるようです。

于 2010-03-04T22:49:42.750 に答える
1

さて、最終的には、ソリューションを再構築する必要がありました。SerializableConfigurationSectionが最も有益であることがわかりました。これは、EnterpriseLibraryのパターンと実践に含まれています。そのため、カスタム構成セクションをWCFに渡すのではなく、手動でシリアル化/逆シリアル化を実行し、構成セクションを文字列としてWCFに渡します。

于 2008-10-31T02:45:42.873 に答える