2012-03-06 66 views
0

我有一个使用REST访问某些WCF的网站。REST对象为半动态.net对象

我有这样的结构,服务器端:

<DataContract()> 
Public Class Widget 
    <DataMember()> 
    Public Properties As Object 
    <DataMember()> 
    Public Type As String 
End Class 

<DataContract()> 
Public Class PropertiesA 
    <DataMember()> 
    Public Hip As String 
End Class 

<DataContract()> 
Public Class PropertiesB 
    <DataMember()> 
    Public Hop As Integer 
End Class 

而且我想传递对象与一个或其他属性,如:

A = { Widget: { Type: "text", Properties: { Hip: "toto" } } } // has to use PropertiesA 
B = { Widget: { Type: "value", Properties: { Hop: 5 } } } // has to use PropertiesB 

但我不知道该怎么使“Type”属性与.NET解串器必须创建PropertiesA或PropertiesB对象的事实匹配。

你认为这有可能吗?

编辑:目前正在研究DataContractResolver

回答

0

WCF是所有关于强类型的服务,并将其发送到服务消息的合同。在强大的输入中,WCF围绕接口和继承链具有一定的灵活性。看看这两个属性,看看它们是否可以适应你的想法:ServiceKnownType attributeKnownType attribute