Friday 20 January 2012

Per Call Instance in WCF with example

Per Call Instance

In WCF there are 3 types of instancing we can do
  1. Per Call
  2. per Session
  3. Single

Per Call

When we don configuration in WCF service as per call, every call method new service instances are created

In the below example I have created on service for percall

Below example shows the details.

namespace PerCall
   //Created PerCall Interface
public interface IPerCall   {
int IncrementCounter();

   //PerCall session created
public class CounterServicePerCall: IPerCall   {
private int m_counter;
int ICounterServicePerCall.IncrementCounter()
MessageBox.Show(String.Format("Incrementing PerCall counter to {0}.\r\nSession Id: {1}", m_counter, OperationContext.Current.SessionId));
return m_counter;

In the above example i created one service that creates PerCall instance and on the every instacne Counter is incremented

Below screen shot shows the different settings and Per call instances

When we click on PerCall button below screenshots shows the details what happen in PerCall
When again we press perCall session counter remains the same

Above screenshots and example shows that when we use per call instance in WCF every time call is created and counter remains same.

When should we use per call mode?

Per call

When you want a stateless services

When your WCF functions are called in a per call


MSDN link for WCF instances

No comments:

Post a Comment