Making slsvcutil behave like “Add Service Reference”
Just a quick note to clarify a subject where we get a lot of questions.
By default, running Add Service Reference against a WCF service and then running slsvcutil against that same service will not generate the same proxy. Some things that are different in the slsvcutil proxy include:
- using arrays instead of ObservableCollection<T>
- types don’t implement INotifyPropertyChanged for easy databinding
- different namespace
To make slsvcutil generate the same proxy, use the following command. This is actually documented at the very bottom of the slsvcutil help text.
slsvcutil https://example.com/service.svc?wsdl /edb /namespace:"*,SilverlightApplication1.ServiceReference1" /ct:System.Collections.ObjectModel.ObservableCollection`1 /r:"%PROGRAMFILES%\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.Windows.dll"
Hope this helps,
-Yavor Georgiev
Program Manager, WCF