Sach K
Sach K

Reputation: 723

Xamarin Forms how to consume a wcf service

I've created a Xamarin project which added the following projects to the solution:

Xamarin.UI(Portable)

Xamarin.UI.Droid

Xamarin.UI.iOS

Xamarin.UI.UWP

Xamarin.UI.Windows (Windows 8.1)

Xamarin.UI.WindowsPhone (Windows Phone 8.1)

I am having problems creating a client which can consume my WCF service.

1) Firstly the current Xamarin project template doesn't reference System.ServiceModel assembly in the PCL therefore I cannot right click the PCL and Add Service Reference to my project. When I manually add a reference to System.ServiceModel from this location - C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5 the menu item for create service reference pops up. When I click Go in the Add Service Reference dialog I get the following error:

"This service cannot be consumed by the current project. Please check if the project target framework supports this service type."

The PCL targets are as follows:

.NET Framework 4.5

ASP.NET Core 1.0

Windows 8

Windows Phone 8.1

Xamarin.Android

Xamarin.iOS

Xamarin.iOS

I don't know how to get this working ?

2) Secondly the work around I use is to create the client with SlSvcUtil.exe Add the generated code to my PCL along with a reference to System.ServiceModel and everything builds ok. The problem is that when I run the code it flags up type reference errors ! Should I be manually adding the reference to System.ServiceModel anyway? What am I doing wrong in this scenario? Am I missing some steps?

I've checked the Xamarin docs but it seems that I can't find detailed instructions on this.

Please help me out ! Thanks:)

Upvotes: 0

Views: 1517

Answers (1)

joe
joe

Reputation: 1125

PCL and WCF should be supported. Alternatively, you could get this to work manually with HttpClient, etc. But maybe if you can use the shared project instead of PCL, that would be easier. Otherwise you'd have to also use DependencyService, create interfaces, etc. for each platform.

Upvotes: 0

Related Questions