Я пишу службу REST WCF с методами для получения коллекции ресурсов и одного ресурса.Мои ресурсы - это классы, основанные на одном абстрактном классе.В моем методе для получения коллекции у меня есть:
[WebGet(UriTemplate = "")]
[ServiceKnownType(typeof(File)), ServiceKnownType(typeof(Text))]
List<ResourceBase> GetCollection();
, и это создает XML, который выглядит следующим образом:
<ArrayOfResourceBase xmlns="..." xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ResourceBase i:type="Text">
...
</ResourceBase>
<ResourceBase i:type="File">
...
</ResourceBase>
</ArrayOfResourceBase>
Мой метод одного объекта выглядит так:
[WebGet(UriTemplate = "{id}")]
[ServiceKnownType(typeof(File)), ServiceKnownType(typeof(Text))]
ResourceBase Get(string id);
и создает XML следующим образом:
<Text xmlns="..." xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
...
</Text>
Есть ли способ заставить эти две части XML выглядеть одинаково, то есть избавиться от тегов "i: type" в ArrayOf... и преобразовать их в имя тега, или заставить их в ответе одного объекта?