Recently I was working on a portable class library(PCL) example in VS2012 to create a proxy class for an external asmx soap service with return types DataTable and DataSet. The easiest way to create a proxy class to add a service reference. In my case, it failed. The add service reference generated code contains XmlElement and failed to generate response messages with DataTable and DataSet. VS2012 gives a warning for Xml Element.
The alternative way to add service reference is to create a HttpWebRequest to asmx service wsdl and use System.ServiceModel.Description.ServiceDescription to load response xml and parse WSDL. This is one too not supported in PCL.
Because of these limitations, What I think a work around for this is to create a custom wsdl parser or manually construct soap envelopes and parse responses but its not an easiest way to do it and a time consuming.
Some of the limitations of PCL are
1) PCL doesn’t support System.Xml.XmlElement, instead use System.Xml.Linq.XElement
2) PCL doesn’t support System.Data.
3) PCL doesn’t support some of the member classes of System.ServiceModel.Description for example ServiceDescription, WSDLImporter etc.
My project target settings as below