2010-05-13 64 views
1

我正在向国际HTTP标准写入服务,并且有一种方法可以返回三种不同的XML结果,称之为单一,多重和错误。现在我写了一个IXmlSerializable类,它可以使用这些结果并生成它们。但是,WCF似乎坚持我只能有一个返回的XML根名称。我必须为我的单个,多个或错误的自定义对象选择一个XmlRoot。WCF操作中返回不同的XML

如何设置WCF,以便我可以在运行时选择根目录?

这是我目前的。

/// <summary> 
/// A collection of items. 
/// </summary> 
[XmlRoot("Multiple", Namespace = "DAV:")] 
public sealed class ItemCollection : IEnumerable<Item>, IXmlSerializable 

/// <summary> 
/// Processes and returns the items. 
/// </summary> 
[WebInvoke(Method = "POST", UriTemplate = "{*path}", BodyStyle = WebMessageBodyStyle.Bare)] 
[OperationContract] 
[XmlSerializerFormat] 
ItemCollection Process(string path); 

的ItemCollection实现IXmlSerializable的和可以选择的可能回报来写,但是根XML节点是因为在ItemCollection类XmlRoot属性总是多。

回答