WCF service side code Archives - Anuj Varma, Hands-On Technology Architect, Clean Air Activist https://www.anujvarma.com/tag/wcf-service-side-code/ Production Grade Technical Solutions | Data Encryption and Public Cloud Expert Tue, 26 Nov 2013 19:50:18 +0000 en-US hourly 1 https://wordpress.org/?v=7.0.2 https://www.anujvarma.com/wp-content/uploads/anujtech.png WCF service side code Archives - Anuj Varma, Hands-On Technology Architect, Clean Air Activist https://www.anujvarma.com/tag/wcf-service-side-code/ 32 32 WCF Publish Subscribe– A Full Example: The Service Side Part 2 (Implementation) https://www.anujvarma.com/wcf-publish-subscribe-a-full-example-the-service-side-part-2-implementation/ https://www.anujvarma.com/wcf-publish-subscribe-a-full-example-the-service-side-part-2-implementation/#comments Thu, 28 Jul 2011 16:02:11 +0000 http://www.anujvarma.com/wcf-publish-subscribe-a-full-example-the-service-side-part-2-implementation/ Our implementation is based on .NET events (for a non-events based implementation, check out the New IObserver IObservable interfaces in C# 4.0). The idea of publishing goes hand-in-hand with ‘raising […]

The post WCF Publish Subscribe– A Full Example: The Service Side Part 2 (Implementation) appeared first on Anuj Varma, Hands-On Technology Architect, Clean Air Activist.

]]>
Our implementation is based on .NET events (for a non-events based implementation, check out the New IObserver IObservable interfaces in C# 4.0). The idea of publishing goes hand-in-hand with ‘raising an event’  – and the idea of subscribers goes hand-in-hand with consuming an event.

Our event based implementation thus consists of:

  1. Defining an event
  2. Defining an  event handler (all the handler will do is notify the various subscribers)
  3. Implement the Subscribe method
  4. Implement the Unsubscribe method
  5. Implement the PublishMagazine method
public class NewIssueAvailableEventArgs : EventArgs

{

    public string hyperlinkURL;

    public string issueNumber;

    public DateTime datePublished;

}

 

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

public class MagazineService : IMagazineService

{

    public static event NewIssueAvailableHandler NewIssueAvailableEvent;

    public delegate void NewIssueAvailableHandler(object sender, NewIssueAvailableEventArgs e);

 

    // instance of eventhandler

    NewIssueAvailableHandler newIssueHandler;

 

    // Callback to individual clients using the ClientContract

    IClientContract callback = null;

 

    public void PublishMagazine(string hyperLinkToIssue, string issueNumber, DateTime datePublished)

    {

        NewIssueAvailableEventArgs eargs = new NewIssueAvailableEventArgs();

        eargs.hyperlinkURL = hyperLinkToIssue;

        eargs.issueNumber = issueNumber;

        eargs.datePublished = datePublished;

 

        // fire the event

        NewIssueAvailableEvent(this, eargs);

    }

 

    public void Subscribe()

    {

        callback = OperationContext.Current.GetCallbackChannel<IClientContract>();

        // this is the handler that we will 'unsubscribe' from later

        newIssueHandler = new NewIssueAvailableHandler(MagazineService_NewIssueAvailableEvent);

        NewIssueAvailableEvent += newIssueHandler;

    }

 

    public void Unsubscribe()

    {

        NewIssueAvailableEvent -= newIssueHandler;

    }

 

    public void MagazineService_NewIssueAvailableEvent(object sender, NewIssueAvailableEventArgs e)

    {

        callback.MessageReceived(e.hyperlinkURL, e.issueNumber, e.datePublished);

    }

}

The post WCF Publish Subscribe– A Full Example: The Service Side Part 2 (Implementation) appeared first on Anuj Varma, Hands-On Technology Architect, Clean Air Activist.

]]>
https://www.anujvarma.com/wcf-publish-subscribe-a-full-example-the-service-side-part-2-implementation/feed/ 8