Hi Simon,
From your description, you're consuming a .NET webservice in an client app.
The webservice has some certain custom data classes which will be shared in
both client and service project. However, when you try building the
solution, you found that the client app report error about the custom class
object(type/namespace mismatch), correct?
Based on my experience, this is an expected behavior when your webservice
method use a custom class(an this class has also been shared in client
project). Because for webservice, the client-side proxy will also generate
a delegate class type (together with the proxy class), therefore, the
generated webproxy class will use that delegate class type by default( that
is the "nsProgram.wsWeb.Data" in your case). And if you try passing the
originally defined class type( that is "nsProgram.Data" in your case), it
will report type mismatch error.
To resolve this , you can consider the following means:
1. Just let client application use the generated proxy class type instead
of the originally server-side type
2. You can manually modify the generated proxy class(modify the
Reference.cs file ...) and change those "delegate class" to your own class
type. However, this update will be erased whenever you update the
webreference. To further overcome this problem, you can use partial class
feature to put your own customized proxy code logic:
#How to customize the Web Service proxy generated by wsdl.exe (or add web
references)
http://blogs.msdn.com/maximelamure/a...ustomize-the-w
eb-service-proxy-generated-by-wsdl-exe-or-add-web-references.aspx
Sincerely,
Steven Cheng
Microsoft MSDN Online Support Lead
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
From: "Simon" <no**@none.com>
Subject: Problems with namespaces
Date: Wed, 2 Jan 2008 08:54:55 +0100
I have problem with namespaces. I have a program that consumes the web
service and has for instance names space nsProgram. In this program I have
defined several classes that I use for storing and handling internal
information. Than I have web service, that also uses the same classes (I
included the file as linked external resource). I included this web service
as web reference and used name wsWeb.
When I am trying to call the web service with parameter that is my class
(for instance Data) I can declare this Data class in my main program
without
any problem, but compiler reports an error:
Error 1 The best overloaded method match for
'nsProgram.wsWeb.WebData.Test('nsProgram.wsWeb.Hea der)' has some invalid
arguments
Error 2 Argument '1': cannot convert from 'nsProgram.Data' to
'nsProgram.wsWeb.Data'
Why is the wsWeb also included for all data types? How can I get around
that?
Thank you
Simon