NSUrlSession in Xamarin

Viewed 1877

I have started learning Xamarin and created small tutorial for retrieving data from server. I have used NSUrlSession mechanism. Below is my code. I am not sure why warning is showing for NSUrlSession. Please help me in understanding and solving of this warning.

Warning CS0618: 'NSUrlSession.FromConfiguration(NSUrlSessionConfiguration, NSUrlSessionDelegate, NSOperationQueue)' is obsolete: 'Use the overload with a INSUrlSessionDelegate parameter.' (CS0618) (SampleApp)

    public void getData() {

        NSUrl url = new NSUrl("some url");
        NSUrlRequest request = new NSUrlRequest(url);
        NSUrlSession session = null;
        NSUrlSessionConfiguration myConfig = NSUrlSessionConfiguration.DefaultSessionConfiguration;
        session = NSUrlSession.FromConfiguration(myConfig, new MySessionDelegate (), new NSOperationQueue ());
        NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => {

        });
        task.Resume();
    }

    public class MySessionDelegate : NSUrlSessionDelegate, INSUrlSessionDelegate
    {

    }
1 Answers

NSUrlSessionDelegate implements the INSUrlSessionDelegate protocols so you can either cast it:

session = NSUrlSession.FromConfiguration(myConfig, (new MyNSUrlSessionDelegate() as INSUrlSessionDelegate), new NSOperationQueue());

Or:

Change your UrlSessionDelegate to inherit from NSObject and then implement the INSUrlSessionDelegate protocol:

public class MySessionDelegate : NSObject, INSUrlSessionDelegate
{
   ~~~ implement the protocols that you need
}
Related