2011-01-27 10 views
1

私はこのクラスを持っていますWCF関数から返すスケジュールです。 Visual Studioにサービス参照を追加すると、StartTimeプロパティとEndTimeプロパティが表示されなくなりました。代わりに、この奇妙なExtensionDataフィールドが表示されます。なぜこれが起こっているのか誰に説明できますか?WCF未知フィールドExtensionData

public class Schedule 
{ 
    public Duration SDuration 
    { 
     get; set; 
    } 

    public Timeslot STimeslot 
    { 
     get; set; 
    } 
} 

public class Timeslot 
{ 
    public DateTime StartTime; 
    { 
     get; set; 
    } 

    public DateTime EndTime; 
    { 
     get; set; 
    } 

    public bool SomeFunc() 
    { 
    } 
} 
+0

これらは完全なクラス宣言ですか? '[DataContract]'と '[DataMember]'属性がいくつか見えるはずです。 –

+0

これは完全なクラス宣言です。 DataContractなしでは動作しませんか? – Tux

+2

'DataContract'と' DataMember'属性はオブジェクトの直列化を制御します。そのため、これらの属性を持つサービスを通して公開されているクラスを飾る必要があります。 –

答えて

0

フレドリックコメントで述べたように、クラスは[DataContract]とそれを動作させるための[DataMember]が飾られている必要があります。

0

... DataContract属性が指定されていないため、デフォルトではSerializable属性が使用されています。シリアライズ可能なアトリビュートには、クラスに含まれるすべてのフィールドが含まれます(プロパティではないため、none)ので、これらのプロパティ情報はExtensionDataに格納されます。