Я создал веб-службы, которые хорошо работают, за исключением того, что я пытаюсь удалить пространства имен xsi и xsd.Удалите ненужные пространства имен xsi и xsd из wcf
Я видел много ссылок, показывающий, что я должен использовать пользовательский сериализатор, как это:
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
, но я не нашел способ реализовать это в моем коде. Вот мой код:
[ServiceContract, XmlSerializerFormat]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyUser
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "getUserInfo?token={userId}", BodyStyle = WebMessageBodyStyle.Bare)]
public PersonnResponse ValidateToken(string userId)
{
var response = new PersonnResponse();
response.userId = userId;
response.firstName = myOtherServiceGetFirstName(userId);
response.lastName = myOtherServiceGetLastName(userId);
return response;
}
[DataContract(Name = "person", Namespace = "")]
public class PersonnResponse
{
[DataMember(Name = "userId", EmitDefaultValue = false)]
public string userId { get; set; }
[DataMember(Name = "firstName", EmitDefaultValue = false)]
public string firstName { get; set; }
[DataMember(Name = "lastName", EmitDefaultValue = false)]
public string lastName { get; set; }
}
Почему вы хотите избавиться от этих пространств имен? –
угадайте, что? клиент, который из другой компании им не нравится! –
«Не нравится им»? Вы можете попросить у клиента тот же вопрос. Конечно, вам придется делать это в «клиентском разговоре». Например, скажите клиенту: «Мы будем работать, чтобы избавиться от пространств имен, так как вы считаете их неопрятными». Затем клиент может сказать: «О, да, это правильно» или «Нет, это не причина», у нас есть этот скрипт, который не может разобрать пространства имен ». –