File: System\ServiceModel\Discovery\ServiceDiscoveryInstanceContextProvider.cs
Project: ndp\cdf\src\NetFx40\System.ServiceModel.Discovery\System.ServiceModel.Discovery.csproj (System.ServiceModel.Discovery)
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------
namespace System.ServiceModel.Discovery
{
    using System;
    using System.Runtime;
    using System.ServiceModel.Channels;
    using System.ServiceModel.Dispatcher;
 
    class ServiceDiscoveryInstanceContextProvider : IInstanceContextProvider, IInstanceProvider
    {
        DiscoveryService discoveryService;
 
        internal ServiceDiscoveryInstanceContextProvider(DiscoveryService discoveryService)
        {
            Fx.Assert(discoveryService != null, "The discoveryService must be non null.");
            this.discoveryService = discoveryService;
        }
 
        InstanceContext IInstanceContextProvider.GetExistingInstanceContext(Message message, IContextChannel channel)
        {
            // per call instance context
            return null;
        }
 
        void IInstanceContextProvider.InitializeInstanceContext(InstanceContext instanceContext, Message message, IContextChannel channel)
        {
        }
 
        bool IInstanceContextProvider.IsIdle(InstanceContext instanceContext)
        {
            return true;
        }
 
        void IInstanceContextProvider.NotifyIdle(InstanceContextIdleCallback callback, InstanceContext instanceContext)
        {
        }
 
        object IInstanceProvider.GetInstance(InstanceContext instanceContext, Message message)
        {
            return this.discoveryService;
        }
 
        object IInstanceProvider.GetInstance(InstanceContext instanceContext)
        {
            return this.discoveryService;
        }
 
        void IInstanceProvider.ReleaseInstance(InstanceContext instanceContext, object instance)
        {
        }
    }
}