WCFには新しく、シリアル化が正しく機能しない理由を理解するのに役立つ必要があります。wcf serialization
サービスの定義 - 私は、ポストLogDeviceCommunicationオブジェクトにシリアライズして、ちょうど私がちょうどテストとしてフィドラーでは、次のXMLを掲示しています現時点では、簡単なテスト
[OperationContract]
[WebInvoke(UriTemplate = "AddDeviceCommunicationLog", RequestFormat =
WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, Method = "POST")]
LogDeviceCommunication AddDeviceCommunicationLog(LogDeviceCommunication
deviceCommunicationEntry);
public LogDeviceCommunication AddDeviceCommunicationLog(LogDeviceCommunication
deviceCommunicationEntry)
{
return deviceCommunicationEntry;
}
としてオブジェクトを返すようにしたいです。
<?xml version="1.0" encoding="UTF-8"?>
<LogDeviceCommunication>
<ID>1207a26e-ab59-4977-b7eb-b2776205cffe</ID>
<DeviceID>A42E8707-7C65-45AA-8E58-5D21F53DA101</DeviceID>
<Time>2012-03-14T15:38:28.379Z</Time>
<Line>0</Line>
<Tab>0</Tab>
<Info>Starting Synchronisation</Info>
</LogDeviceCommunication>
結果は
<LogDeviceCommunication z:Id="i1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<ChangeTracker z:Id="i2"
xmlns:a="http://schemas.datacontract.org/2004/07/conxEntities">
<a:ExtendedProperties/>
<a:ObjectsAddedToCollectionProperties/>
<a:ObjectsRemovedFromCollectionProperties/>
<a:OriginalValues/>
<a:State>Added</a:State>
</ChangeTracker>
<DeviceID>00000000-0000-0000-0000-000000000000</DeviceID>
<ID>1207a26e-ab59-4977-b7eb-b2776205cffe</ID>
<Info i:nil="true"/>
<Line i:nil="true"/>
<Tab i:nil="true"/>
<Time>2012-03-14T15:38:28.379Z</Time>
</LogDeviceCommunication>
はなぜデバイスIDは、IDが正しいGUIDが含まれていながら、(私はそれがnullのGUIDだと仮定)0000年代を含まないフィドラー
から返されました。 Info、Line、Info要素にnil値が含まれているのはなぜですか? LogDeviceCommunicationはPOCOは、ADO.NETセルフトラッキングテンプレート要約版を、私は私が間違っので、任意のヘルプは感謝何かをやっていると確信して
[DataContract(IsReference = true, Namespace = "")]
public partial class LogDeviceCommunication: IObjectWithChangeTracker,
INotifyPropertyChanged
[DataMember]
public System.Guid DeviceID
[DataMember]
public System.DateTime Time
[DataMember]
public Nullable<int> Line
[DataMember]
public Nullable<int> Tab
[DataMember]
public string Info
[DataMember]
public System.Guid ID
される使用EF4から生成されています。
私はあなたには、いくつかの関連するコードを残してきたと思います。 ChangeTrackerはどのように初期化されていますか? (あなたはEFの人たちからいくつかの注意を喚起するためにEF4にあなたの質問にタグを付けることもできます。 –