예제 #1
0
 /// <summary>
 /// Stores the configuration source that should be used to derive the
 /// <see cref="PolicySet"/> for interception.
 /// </summary>
 /// <param name="configSource">The configuration source.</param>
 public void SetPolicyConfigurationSource(IConfigurationSource configSource)
 {
     if (this.configSource == null || this.configSource != configSource)
     {
         lock (policiesLock)
         {
             if (this.configSource == null || this.configSource != configSource)
             {
                 this.configSource = configSource;
                 PolicyInjectorFactory injectorFactory =
                     new PolicyInjectorFactory(configSource);
                 injector = injectorFactory.Create();
             }
         }
     }
 }
예제 #2
0
 /// <summary>
 /// Stores the configuration source that should be used to derive the
 /// <see cref="PolicySet"/> for interception.
 /// </summary>
 /// <param name="configSource">The configuration source.</param>
 public void SetPolicyConfigurationSource(IConfigurationSource configSource)
 {
     if (this.configSource == null || this.configSource != configSource)
     {
         lock (policiesLock)
         {
             if (this.configSource == null || this.configSource != configSource)
             {
                 this.configSource = configSource;
                 PolicyInjectorFactory injectorFactory =
                     new PolicyInjectorFactory(configSource);
                 injector = injectorFactory.Create();
             }
         }
     }
 }
예제 #3
0
        public object GetInstance(InstanceContext instanceContext, Message message)
        {
            PolicyInjector policyInjector = null;
            if (string.IsNullOrEmpty(this._policyInjectorName))
            {
                policyInjector = new PolicyInjectorFactory().Create();
            }
            else
            {
                policyInjector = new PolicyInjectorFactory().Create(this._policyInjectorName);
            }

            Type serviceType = instanceContext.Host.Description.ServiceType;
            object serviceInstance = Activator.CreateInstance(serviceType);
            if (!this._serviceContractType.IsInterface && !serviceType.IsMarshalByRef && policyInjector is RemotingPolicyInjector)
            {
                return serviceInstance;
            }

            return policyInjector.Wrap(serviceInstance, this._serviceContractType);
        }
예제 #4
0
        public object GetInstance(InstanceContext instanceContext, Message message)
        {
            PolicyInjector policyInjector = null;

            if (string.IsNullOrEmpty(this._policyInjectorName))
            {
                policyInjector = new PolicyInjectorFactory().Create();
            }
            else
            {
                policyInjector = new PolicyInjectorFactory().Create(this._policyInjectorName);
            }

            Type   serviceType     = instanceContext.Host.Description.ServiceType;
            object serviceInstance = Activator.CreateInstance(serviceType);

            if (!this._serviceContractType.IsInterface && !serviceType.IsMarshalByRef && policyInjector is RemotingPolicyInjector)
            {
                return(serviceInstance);
            }

            return(policyInjector.Wrap(serviceInstance, this._serviceContractType));
        }