WebService method и общие объекты клинта и сервера
От: Аноним  
Дата: 23.04.08 19:59
Оценка:
Есть WebService.
Есть общий для сервера и клиента класс — MyClass
есть общий класс — MyClass2
у MyClass есть метод SetMyClass2(MyClass2 object)

Есть вебметод который возращает MyClass2.

Проблема следущая,
добавив ссылку на WebService как положено сгенерировался файл с определинем
метода вэбсериса, я получаю МyClass2
и хочу вызвать на клиенте метод своего общего класса SetMyClass2(MyClass2 object)
но он не знает что объект сгенерированый на клиенте я вляется в точности объектом
который объявлен в файле общех классов.
Они находятся в разных пространствах имен.

Подаскажите плиз как такая проблема красиво решается.
Re: WebService method и общие объекты клинта и сервера
От: Win32nipuh  
Дата: 24.04.08 05:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть WebService.

А>Есть общий для сервера и клиента класс — MyClass
А>есть общий класс — MyClass2
А>у MyClass есть метод SetMyClass2(MyClass2 object)

А>Есть вебметод который возращает MyClass2.


А>Проблема следущая,

А>добавив ссылку на WebService как положено сгенерировался файл с определинем
А>метода вэбсериса, я получаю МyClass2
А>и хочу вызвать на клиенте метод своего общего класса SetMyClass2(MyClass2 object)
А>но он не знает что объект сгенерированый на клиенте я вляется в точности объектом
А>который объявлен в файле общех классов.
А>Они находятся в разных пространствах имен.

А>Подаскажите плиз как такая проблема красиво решается.



сумбурно....

что значит "общие классы"?
Вы не забывайте, что код на сервере и код на клиенте — это разные коды.
Вызывать на клиенте вы можете методы сервиса, передавать вы можете объекты.
Но написать на клиенте что-то типа мойсерверныйкласс.метод() не получится...

Приведите хотя бы код, как вы делаете, где ошибка? ..
Re: WebService method и общие объекты клинта и сервера
От: stump http://stump-workshop.blogspot.com/
Дата: 24.04.08 05:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть WebService.

А>Есть общий для сервера и клиента класс — MyClass
А>есть общий класс — MyClass2
А>у MyClass есть метод SetMyClass2(MyClass2 object)

А>Есть вебметод который возращает MyClass2.


А>Проблема следущая,

А>добавив ссылку на WebService как положено сгенерировался файл с определинем
А>метода вэбсериса, я получаю МyClass2
А>и хочу вызвать на клиенте метод своего общего класса SetMyClass2(MyClass2 object)
А>но он не знает что объект сгенерированый на клиенте я вляется в точности объектом
А>который объявлен в файле общех классов.
А>Они находятся в разных пространствах имен.

А>Подаскажите плиз как такая проблема красиво решается.


В WCF это красиво решается. А здесь только руками.
Вытаскиваете сгенерированный код из web reference удаляете там сгенерированный код МyClass2 и сохраняете весь оставшийся код в файл .cs в проекте. Web reference удаляете.
Теперь и клиент и сервер используют МyClass2, однако если вы что либо поменяете в своем web сервисе, то соответствующие изменения в клиентском прокси классе вам тоже придется делать руками.
Понедельник начинается в субботу
Re: WebService method и общие объекты клинта и сервера
От: Овощ http://www.google.com
Дата: 24.04.08 06:01
Оценка: 4 (1)
А>Подаскажите плиз как такая проблема красиво решается.

Насколько я помню, эта проблема "красиво" решается через механизм Schema Importer Extension.

A Schema Importer Extension is a type that can be registered with the Web services infrastructure through code or via config and will be called during the schema import process to allow an extension to interpret the schema and inject code into the proxy. During schema import, each extension is called in the configured order for each schema type encountered, and the extension can choose to inject code or to simply ignore that type in the schema. This mechanism allows developers to build extensions that will map schema constructs matched by name, namespace, and/or shape to custom classes or code.

This type of control is useful when the client of a Web service has custom types that are much richer than those generated by wsdl.exe that the developer wants to be used by the proxy. Prior to the .NET Framework 2.0, this was possible only by modifying the generated proxy. These changes were lost when the proxy was regenerated. Schema Importer Extensions can now be developed and registered to map schema type to the custom type every time the proxy is generated.

Re[2]: WebService method и общие объекты клинта и сервера
От: Овощ http://www.google.com
Дата: 24.04.08 06:04
Оценка:
Customizing generated Web Service proxies in Visual Studio 2005
Re[2]: WebService method и общие объекты клинта и сервера
От: Аноним  
Дата: 29.04.08 19:09
Оценка:
Здравствуйте, Овощ, Вы писали:

А>>Подаскажите плиз как такая проблема красиво решается.


О>Насколько я помню, эта проблема "красиво" решается через механизм Schema Importer Extension.


О>

О>A Schema Importer Extension is a type that can be registered with the Web services infrastructure through code or via config and will be called during the schema import process to allow an extension to interpret the schema and inject code into the proxy. During schema import, each extension is called in the configured order for each schema type encountered, and the extension can choose to inject code or to simply ignore that type in the schema. This mechanism allows developers to build extensions that will map schema constructs matched by name, namespace, and/or shape to custom classes or code.

О>This type of control is useful when the client of a Web service has custom types that are much richer than those generated by wsdl.exe that the developer wants to be used by the proxy. Prior to the .NET Framework 2.0, this was possible only by modifying the generated proxy. These changes were lost when the proxy was regenerated. Schema Importer Extensions can now be developed and registered to map schema type to the custom type every time the proxy is generated.


то что нужно!
спасибо огромное
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.