Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Проблема с наследованным типом. / 5 сообщений из 5, страница 1 из 1
12.11.2014, 16:03
    #38803751
WorkerAwa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с наследованным типом.
Привет.

Мне нужно написать сервис по существующей WSDL.

Обнаружилась весьма неприятная организация - после того, как обрабатываю WSDL через ScvUtil, создаются, вроде бы, нормальные контракты.

НО, когда я строю на этих контрактах свой сервис, а затем пытаюсь написать тестового клиента (да и вообще, просто подключаюсь через WcfTestClient) - не подцепляется информация о типе.

Важно примечание - не подцепляется информация о наследовании.

Вот код,к оторый сгенерил ScvUtil, и на котором я запускаю службу

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[MessageContract(IsWrapped = true, WrapperName = "GetMyInfo",
                   WrapperNamespace = "http://MyInfo.ru/goods")]
public partial class GetMyInfo : MessageRoot {
}


[System.Diagnostics.DebuggerStepThroughAttribute()]
[MessageContract(IsWrapped = true, WrapperName = "MessageRoot",
                   WrapperNamespace = "http://MyInfo.ru/goods")]
public partial class MessageRoot {



А вот код, который создает тестовый клиент, при импортировании службы:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ServiceModel.MessageContractAttribute(WrapperName="GetMyInfo", 
						  WrapperNamespace="http://MyInfo.ru/goods", 
						  IsWrapped=true)]
    public partial class GetMyInfo {
        
        public GetMyInfo () {
        }
    }



нету никакой ссылки на тип MessageRoot !! А по сути, в нем все поля и хранятся.

Подскажите пожалуйста в чем может быть дело.
...
Рейтинг: 0 / 0
12.11.2014, 16:09
    #38803763
RomanH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с наследованным типом.
...
Рейтинг: 0 / 0
12.11.2014, 16:17
    #38803782
WorkerAwa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с наследованным типом.
сделал

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[MessageContract(IsWrapped = true, WrapperName = "GetMyInfo",
                   WrapperNamespace = "http://MyInfo.ru/goods")]
[KnownType(typeof(MessageRoot))]
public partial class GetMyInfo : MessageRoot {
}


[System.Diagnostics.DebuggerStepThroughAttribute()]
[MessageContract(IsWrapped = true, WrapperName = "MessageRoot",
                   WrapperNamespace = "http://MyInfo.ru/goods")]
public partial class MessageRoot {



Но не помогло, к сожалению.
Как я понимаю этот атрибут нужно накладывать на класс-наследник (т.е. на GetMyInfo в моем случае ) ?
...
Рейтинг: 0 / 0
12.11.2014, 16:29
    #38803798
WorkerAwa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с наследованным типом.
UPD.

Добавил атрибут KnownType, к классу
а также добавил атрибут ServiceKnownType на интерфейс службы:

Код: c#
1.
2.
3.
4.
[ServiceKnownType(typeof(GetMyInfoInfoResponse))]
[ServiceKnownType(typeof(GetMyInfo))]
[ServiceKnownType(typeof(MessageRoot))]
public interface IMyServiceBinding {




не помогло. При добавлении ссылке на службу - не сохраняется инфрмация о родительском типе... Только об GetMyInfo - а он вообще, по сути, пустой.
...
Рейтинг: 0 / 0
12.11.2014, 16:59
    #38803846
WorkerAwa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с наследованным типом.
Странно еще то, что Scvutil сам не создает эти KnowType. Т.е. он импортнул типы, создал ИЕРАРХИЮ наследования (разобрался же) - но атрибуты поставить не удосужился.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Проблема с наследованным типом. / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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