0

クラスの型を持つ KnownType 属性で装飾されたクラスがあります。これは許されませんか?

  [KnownType(typeof(Occ600UIConfig))]
    public class Occ600UIConfig 
    { }

その場合、DCS が次の例外をスローするのはなぜですか?

{「行 1 位置 387 のエラー。要素 ' http://schemas.microsoft.com/2003/10/Serialization/Arrays:Value ' には ' http://schemas.datacontract.org/2004/07/のデータが含まれています。OCC600.Infrastructure.Dictionary.BusinessEntities:Occ600UIConfig ' data contract. The deserializer has no knowledge of any type that maps to this contract. 'Occ600UIConfig' に対応する型を既知の型のリストに追加します。たとえば、KnownTypeAttribute 属性を使用します。または、DataContractSerializer に渡される既知の型のリストに追加します。"}

4

1 に答える 1

4

このKnownType属性は、特定のコンテキストでも使用される可能性のある基本クラスの子孫クラスを定義して「アドバタイズ」するために使用されます。

ただし、WCF のデータ クラスは、主に[DataContract]属性 (および属性に含めたいすべてのメンバー)でマークする必要があり[DataMember]ます。

[DataContract]
public class Occ600UIConfig 
{ }

継承階層がない場合、KnownType 属性は必要ありません。

于 2010-04-19T21:20:49.220 に答える