Я записываю службу в международный стандарт HTTP, и есть один метод, который может возвращать три разных результата XML, называть их Single, Multiple и Error.Теперь я написал класс IXmlSerializable, который может использовать каждый из этих результатов и генерировать их.Однако WCF, похоже, настаивает на том, что у меня может быть только одно возвращаемое корневое имя XML.Мне нужно выбрать XmlRoot для моего пользовательского объекта или Single, Multiple или Error.
Как я могу настроить 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-узел ВСЕГДА Множественный, поскольку атрибут XmlRootкласс ItemCollection.