+1  A: 

First of all, you should be using WCF instead of ASMX web services for all new development.

Second, when you add a Web Reference (or, preferably a Service Reference), you get proxy copies of all the types exposed by the web service. If the service returns a class that contains a public property of some struct type, then you will get a proxy copy of the returned class, as well as a proxy copy of the struct type.

You'll get a class, BTW, not a struct. The concept of "struct" doesn't translate across service boundaries.

John Saunders
"you should be using WCF instead of ASMX web services". Why? As i know WCF is a expensive addition for Visual Studio.
chapluck
@chapluck: where did you get _that_ idea? WCF is part of .NET since 3.0, and is the replacement for .NET Remoting and for ASMX Web Services, both of which are effectively dead (no enhancements, only critical bug fixes). See this [MSDN](http://msdn.microsoft.com/en-us/library/7bkzywba.aspx) article or any other about ASMX. See the [WCF Developer Center](http://msdn.microsoft.com/en-us/netframework/aa663324.aspx) to learn what most .NET developers have known for four years.
John Saunders
Thanks for reply.
chapluck
@John Saunders Friend, you could tell me where can I find the reference to "why?" that. You've indicated using arguments strings in a XML webservice to receive?Thanks for All Reply's
Ph.E
@Ph: I don't know what reference you're looking for. Perhaps the [WCF Developer Center](http://msdn.microsoft.com/wcf) will be of assistance.
John Saunders