WCF REST Starter Kit not filling base class members on POST

Posted by HJG on Stack Overflow See other posts from Stack Overflow or by HJG
Published on 2010-05-19T19:37:59Z Indexed on 2010/05/19 19:40 UTC
Read the original article Hit count: 193

Filed under:
|
|

I have a WCF REST Starter Kit service. The type handled by the service is a subclass of a base class. For POST requests, the base class members are not correctly populated.

The class hierarchy looks like this:

[DataContract]
public class BaseTreeItem 
{
    [DataMember]
    public String Id { get; set; }
    [DataMember]
    public String Description { get; set; }
}

[DataContract]
public class Discipline : BaseTreeItem
{
    ...
}

The service definition looks like:

[WebHelp(Comment = "Retrieve a Discipline")]
[WebGet(UriTemplate = "discipline?id={id}")]
[OperationContract]
public Discipline getDiscipline(String id)
{
    ...
}

[WebHelp(Comment = "Create/Update/Delete a Discipline")]
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "discipline")]
public WCF_Result DisciplineMaintenance(Discipline discipline)
{
    ...
}

Problem: While the GET works fine (returns the base class Id and Description), the POST does not populate Id and Description even though the XML contains the fields.

Sample XML:

<?xml version="1.0" encoding="utf-8"?>
<Discipline xmlns="http://schemas.datacontract.org/2004/07/xxx.yyy.zzz">
  <DeleteFlag>7</DeleteFlag>
  <Description>2</Description>
  <Id>5</Id>
  <DisciplineName>1</DisciplineName>
  <DisciplineOwnerId>4</DisciplineOwnerId>
  <DisciplineOwnerLoginName>3</DisciplineOwnerLoginName>
</Discipline>

Thanks for any assistance.

© Stack Overflow or respective owner

Related posts about c#

Related posts about wcf