Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Помогите советом, пожалуйста (wcf, .Net4, rest, xml) / 19 сообщений из 19, страница 1 из 1
09.01.2019, 22:55
    #39757543
Aleksey V.P.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Коллеги, помогите, пожалуйста, советом. Есть wcf rest точка, которая получает в content http запроса xml. Проблема заключается в том, что конечный десериализуемый экземпляр оказывается без некоторых членов.

Код java клиент
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@XmlRootElement(name = "TestItem")
@XmlAccessorType(XmlAccessType.FIELD)
public class TestItem implements Serializable{
    
    private static final long serialVersionUID = 1L;
    
    @XmlElement(name="Field1")
    private String field1;
    
    @XmlAttribute(name="attrib1")
    private String attrib1;
    
    @XmlElement(name="Field2")
    private TestItem2 field2;
    
    @XmlElementWrapper(name="Items")
    @XmlElement(name = "Item")
    private List<TestItem2> items;
}



Входящий xml (в wcf rest EndPoint)
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<TestItem attrib1="test attrib">
    <Field1>test field 1</Field1>
    <Field2><Name>test name</Name></Field2>
    <Items>
        <Item><Name>test 1</Name></Item>
        <Item><Name>test 2</Name></Item>
    </Items>
</TestItem>



Код c# сервер
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
[DataContract(Name = "TestItem", Namespace = "")]
[XmlSerializerFilter]
[XmlRoot(Name="TestItem")]
public class TestItem
{
    [DataMember(Name = "Field1")]
    [XmlElement(Name = "Field1")]
    public string Field1 {get;set;}

    [DataMember(Name = "attrib1")]
    [XmlAttribute(AttributeName="attrib1")]
    public string Attrib1 {get;set;}

    [DataMember(Name = "Field2")]
    [XmlElement(Name="Field2")]
    public TestItem2 Field2 {get;set;}

    [DataMember(Name = "Items")]
    [XmlArray(Name = "Items")]
    [XmlArrayItem(Name = "Item")]
    public IList<TestItem2> Items {get;set;} = new List<TestItem2>();
}


Пока проблема заключается в том, что член Field2 после десериализации пуст ( = null).
...
Рейтинг: 0 / 0
09.01.2019, 23:31
    #39757553
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.,
Где тесты и код получения?
Где текст ошибки?
...
Рейтинг: 0 / 0
09.01.2019, 23:34
    #39757555
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.Входящий xml (в wcf rest EndPoint)
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<TestItem attrib1="test attrib">
    <Field1>test field 1</Field1>
    <Field2><Name>test name</Name></Field2>
    <Items>
        <Item><Name>test 1</Name></Item>
        <Item><Name>test 2</Name></Item>
    </Items>
</TestItem>


Если сервер отдает, тогда в методе сервера заполните и отдайте клиенту Класс.
...
Рейтинг: 0 / 0
09.01.2019, 23:36
    #39757556
Aleksey V.P.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123,

Где ошибку смотреть, если не секрет? Есть экземпляр TestItem с пустым полем Field2 на входе в метод обработчика.
...
Рейтинг: 0 / 0
09.01.2019, 23:36
    #39757557
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Net4
?
...
Рейтинг: 0 / 0
09.01.2019, 23:38
    #39757558
Aleksey V.P.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123Aleksey V.P.Входящий xml (в wcf rest EndPoint)
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<TestItem attrib1="test attrib">
    <Field1>test field 1</Field1>
    <Field2><Name>test name</Name></Field2>
    <Items>
        <Item><Name>test 1</Name></Item>
        <Item><Name>test 2</Name></Item>
    </Items>
</TestItem>


Если сервер отдает, тогда в методе сервера заполните и отдайте клиенту Класс.

Сервер получает post запрос, в теле запроса xml. Сервер десериализует xml и дёргает метод класса параметром служит десериализованный экземпляр TestItem.
...
Рейтинг: 0 / 0
09.01.2019, 23:41
    #39757561
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.Сервер получает post запрос, в теле запроса xml. Сервер десериализует xml и дёргает метод класса параметром служит десериализованный экземпляр TestItem.в 4.5 wcf на таком низком уровне не работают.
Устарело.
Может у тебя из за java?
Тогда делай тесты и пример.
...
Рейтинг: 0 / 0
09.01.2019, 23:46
    #39757562
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.,
Ну и REST делают не с WCF, а простым веб сервером с json.
С wcf делают SOAP.
...
Рейтинг: 0 / 0
09.01.2019, 23:50
    #39757563
Aleksey V.P.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123Aleksey V.P.Сервер получает post запрос, в теле запроса xml. Сервер десериализует xml и дёргает метод класса параметром служит десериализованный экземпляр TestItem.в 4.5 wcf на таком низком уровне не работают.
Устарело.
Может у тебя из за java?
Тогда делай тесты и пример.

Не, с java порядок. В трассировке wcf xml нормальный приходит, как надо, вот только почему-то десериализатор в c# не хочет вложенные классы нормально десериализовать :-( С сериализатором (ответы) таких проблем нету.
...
Рейтинг: 0 / 0
10.01.2019, 07:10
    #39757599
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.Не, с java порядок.ну вы же в публичный форум написали.
Значит за 10 мин делаете шарп клиент и проверяете это утверждение.
Aleksey V.P.десериализаторуже писал выше - версия 4.5 сериализатор автоматический и работать напрямую с xml дурной тон.
...
Рейтинг: 0 / 0
14.01.2019, 13:46
    #39759290
gpu
gpu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.,
Курить здесь>
Код: xml
1.
<Field2><Name>test name</Name></Field2>
...
Рейтинг: 0 / 0
14.01.2019, 22:19
    #39759563
Aleksey V.P.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Коллеги, спасибо всем за советы. Разобрался. Надо было добавить атрибут
Код: c#
1.
[XmlSerializerFormat] 


в интерфейс описание сервиса.
...
Рейтинг: 0 / 0
14.01.2019, 23:23
    #39759588
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Aleksey V.P.Коллеги, спасибо всем за советы. Разобрался. Надо было добавить атрибут
Код: c#
1.
[XmlSerializerFormat] 



в интерфейс описание сервиса.
хммм. Может это для 4-ки версии?
Для 4.5 должно быть этого достаточно:
Код: c#
1.
2.
3.
4.
5.
[DataContract(Namespace="http://example.com/eg2")]
public class MyClass {
  [DataMember]
  public string MyString { get; set; }
}
...
Рейтинг: 0 / 0
15.01.2019, 13:01
    #39759724
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123Aleksey V.P.,
Ну и REST делают не с WCF, а простым веб сервером с json.
С wcf делают SOAP.

Пётр, не надо так категорично, и порой даже в чём-то смешно
...
Рейтинг: 0 / 0
15.01.2019, 13:36
    #39759741
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
256k,
Продолжай флудить. У тебя имя Петр 356 раз).
...
Рейтинг: 0 / 0
15.01.2019, 15:09
    #39759816
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123256k,
Продолжай флудить. У тебя имя Петр 356 раз).

ладно, П., согласен.
Тогда не надо нести фигню, например

"Ну и REST делают не с WCF, а простым веб сервером с json.
С wcf делают SOAP"
...
Рейтинг: 0 / 0
15.01.2019, 15:55
    #39759854
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
256k,
"Ваше мнение очень важно для нас" (с)
...
Рейтинг: 0 / 0
15.01.2019, 19:00
    #39759971
256k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123256k,
"Ваше мнение очень важно для нас" (с)

ожесточённо лайкнул
...
Рейтинг: 0 / 0
16.01.2019, 08:06
    #39760088
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите советом, пожалуйста (wcf, .Net4, rest, xml)
Petro123Aleksey V.P.,
Ну и REST делают не с WCF, а простым веб сервером с json.
С wcf делают SOAP.
И с JSON делают WCF, и прекрасно работает, и в документации расписано как.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Помогите советом, пожалуйста (wcf, .Net4, rest, xml) / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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