powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Несколько namespace alias в одном элементе.
5 сообщений из 5, страница 1 из 1
Несколько namespace alias в одном элементе.
    #39020752
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток. Подскажите какие идеи, пожалуйста. Есть прокси класс, где первым элементом в Body идет AddSomethingReqest:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "1.0.10111.22222")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute("http://www.dnd.com/res")]
    public partial class AddSomethingRq_Type : BaseRequest, System.ComponentModel.INotifyPropertyChanged
    {
    }



При выполнении запроса получаем следующий XML:
Код: xml
1.
2.
3.
4.
5.
6.
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <ApplicationSubmissionAddRq xmlns="http://www.dnd.com/res">
      <AddRequestHeader>
      </AddRequestHeader>
   <ApplicationSubmissionAddRq xmlns="http://www.dnd.com/res">
</s:Body>



Может кто-нибудь подсказать как трансформировать прокси, чтобы получить следующий XML?
Код: xml
1.
2.
3.
4.
5.
6.
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <ApplicationSubmissionAddRq xmlns="http://www.dnd.com/res" xmlns:xsi="http://www.ppiforum.org/GTX_980">
      <AddRequestHeader>
      </AddRequestHeader>
   <ApplicationSubmissionAddRq xmlns="http://www.dnd.com/res">
</s:Body>
...
Рейтинг: 0 / 0
Несколько namespace alias в одном элементе.
    #39020759
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибся с именем типа. Имелось в виду, конечно, это:

При выполнении запроса получаем следующий XML:
Код: xml
1.
2.
3.
4.
5.
6.
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <AddSomethingRq_Type  xmlns="http://www.dnd.com/res">
      <AddRequestHeader>
      </AddRequestHeader>
   <AddSomethingRq_Type  xmlns="http://www.dnd.com/res">
</s:Body>




Может кто-нибудь подсказать как трансформировать прокси, чтобы получить следующий XML?
Код: xml
1.
2.
3.
4.
5.
6.
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <AddSomethingRq_Type  xmlns="http://www.dnd.com/res" xmlns:xsi="http://www.ppiforum.org/GTX_980">
      <AddRequestHeader>
      </AddRequestHeader>
   <AddSomethingRq_Type  xmlns="http://www.dnd.com/res">
</s:Body>
...
Рейтинг: 0 / 0
Несколько namespace alias в одном элементе.
    #39021542
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столько просмотров и ни у кого ни одной идеи?
Добавить удалось так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "1.0.10111.22222")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute("http://www.dnd.com/res")]
    public partial class AddSomethingRq_Type : BaseRequest, System.ComponentModel.INotifyPropertyChanged
    {
        [XmlNamespaceDeclarations()]
        public XmlSerializerNamespaces xmlsn
        {
            get
            {
                XmlSerializerNamespaces xsn = new XmlSerializerNamespaces();
                xsn.Add("xsi", "http://www.ppiforum.org/GTX_980");
                return xsn;
            }
            set
            {
            }
        }
    }



Но Выскакивает ошибка при сериализации, что в inner scope уже объявлен xmlns:xsi. Я думаю, что из-за того что в Body уже есть он. Теперь остается только придумать как убрать его оттуда, ибо в прокси он не объявляется само собой.
...
Рейтинг: 0 / 0
Несколько namespace alias в одном элементе.
    #39021699
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хотелось редактировать весь XML перед отправкой запроса, но, похоже, другого варианта кроме как имплементировать метод BeforeSendRequest IClientMessageInspector интерфейса нет.
...
Рейтинг: 0 / 0
Несколько namespace alias в одном элементе.
    #39048418
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может так ? Ну по крайней мере мне такой синтаксис помогал управлять неймспейсами.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    [ServiceContract(Namespace = "http://www.dnd.com/res")]
    [XmlSerializerFormat]
    public interface IService1
    {
        [OperationContract]
        [XmlSerializerFormat]
        AddSomethingRq_Type ApplicationSubmissionAddRq(AddSomethingRq_Type request);
    }

    [MessageContract(WrapperNamespace = "http://www.dnd.com/res", IsWrapped = true)]    
    public class AddSomethingRq_Type 
    { }
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Несколько namespace alias в одном элементе.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]