WCF Web HTTP服务帮助页面

时间:2011-03-15 04:34:30

标签: c# .net wcf web-services rest

我在/Northwind/Product的WCF中创建了一个简单的Northwind的产品REST Web服务。我还在我的服务上启用了WCF Web HTTP服务帮助页面,该页面位于/Northwind/Product/help。我有一个“GET”操作,其帮助页面位于:/Northwind/Product/help/operations/Get,这是您的标准WCF帮助页面,显示Xml主体,Json主体,Xml架构和其他Xml架构。非常直接,对吧?好的,现在,有趣的东西......

我对Xml架构部分感兴趣,它是:

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="Product">
    <xs:sequence>
      <xs:element minOccurs="0" name="CategoryID" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="Discontinued" type="xs:boolean" />
      <xs:element minOccurs="0" name="ProductID" type="xs:int" />
      <xs:element minOccurs="0" name="ProductName" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="QuantityPerUnit" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="ReorderLevel" nillable="true" type="xs:short" />
      <xs:element minOccurs="0" name="SupplierID" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="UnitPrice" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="UnitsInStock" nillable="true" type="xs:short" />
      <xs:element minOccurs="0" name="UnitsOnOrder" nillable="true" type="xs:short" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Product" nillable="true" type="Product" />
</xs:schema>

我对它感兴趣,因为数据类型。我想知道元素的数据类型。现在,我明白这不是REST的基础。但是,我不想在这里使用SOAP对象。我想保持我的服务简单和松散类型,但仍然需要时知道他们的数据类型。

我的问题是,我如何才公开帮助文件的这个特定部分?如果我不能那样做,那么我有什么其他选择来实现我在这里要做的事情呢?

2 个答案:

答案 0 :(得分:1)

我认为既不能轻松打字也不能同时知道这些字段背后的类型。

您可以将所有内容作为字符串发送,然后在无法进行转换时抛出异常。

xs:element标记中似乎没有可用于帮助信息的标记,http://www.w3schools.com/schema/el_element.asp

答案 1 :(得分:1)

也许您可以尝试使用OData,因为我认为它介于REST和SOAP之间。

http://msdn.microsoft.com/es-es/library/cc668794.aspx