Mike Mertsock - 449 - Apr 28, 2014

We have a Xamarin Android/iOS product that communicates with our ServiceStack service. We are trying to set up a PCL version of our service interface project (request/response DTOs) so that we can use this and JsonServiceClient in the Xamarin codebase.

What is the reasoning that ServiceStack.Interfaces.Pcl uses Profile158 but ServiceStack.Text.Pcl uses Profile7? We have a PCL that supports shared business logic in a Xamarin Android/iOS solution. This shared project targets PCL Profile78, thus we can’t import ServiceStack.Text.Pcl and ServiceStack.Client.Pcl into it. However, we can import them into the Android and iOS projects.

Our current workaround is to reference our service interface PCL from our shared project, and the code that sends requests takes a dependency on IServiceClientAsync which, which is bound via IoC to JsonServiceClient instances inside our Android and iOS UI projects.

It’s because we couldn’t support the lower profile with the impl libraries, some bg info here:
https://plus.google.com/102968642878661365849/posts/J5qErf8qvmA

Having non-PCL impl wired to PCL interfaces is also how the PCL support in SS is implemented in the PclExport and PclClientExport classes, i.e:
https://github.com/ServiceStack/ServiceStack.Text/blob/master/src/ServiceStack.Text/PclExport.cs

Mike Mertsock:

Thanks for the details. We were able to change the PCL profile that our project targets so that it’s compatible with the ServiceStack PCL binaries. Looks like it will work out.