2012-03-09 57 views
0

我試圖消耗它返回這樣XMI數據REST服務:WCF - comsume XMI通過REST

<xmi:XMI xmlns:xmi="http://www.omg.org/XMI" xmi:version="2.0"> 
... 
</...> 

我想在這樣一個服務合同,消費這樣的:

[ServiceContract] 
[XmlSerializerFormat] 
interface IMyService 
{ 

    [OperationContract] 
    [WebGet(
     BodyStyle = WebMessageBodyStyle.Bare, 
     ResponseFormat = WebMessageFormat.Xml, 
     UriTemplate = "myMethod")] 
    MyData MyMethod(); 

... 

} 

我的數據合同看起來像這樣(空用於測試):

[DataContract] 
[XmlRoot] 
public class MyData 
{ 
} 

我得到以下異常:

無法反序列化具有根名稱'XMI'和根命名空間'http://www.omg.org/XMI'的XML主體(用於操作'MyMethod'和合約('IMyService','http:// tempuri .org /'))使用XmlSerializer。確保將與XML相對應的類型添加到服務的已知類型集合中。

任何任何想法? (我能沒有命名空間進食其他REST服務)

回答

0

好了,發現自己的答案: 您必須指定命名空間和根元素名稱:

[XmlRoot(Namespace = "http://www.omg.org/XMI", ElementName = "XMI")] 
public class MyData 
{ 
}