Example #1
0
            public ISolidProxyConfiguration <T> GetProxyConfiguration(IServiceProvider serviceProvider)
            {
                var proxyConfig = ProxyConfig;

                if (proxyConfig == null || proxyConfig.SolidProxyConfigurationStore.ServiceProvider != serviceProvider)
                {
                    var store = (ISolidProxyConfigurationStore)serviceProvider.GetService(typeof(ISolidProxyConfigurationStore));
                    proxyConfig = store.GetProxyConfiguration <T>(ConfigurationId);
                    if (ImplementationFactory != null)
                    {
                        proxyConfig.ConfigureAdvice <ISolidProxyInvocationImplAdviceConfig>().ImplementationFactory = ImplementationFactory;
                    }
                    ProxyConfig = proxyConfig;
                }
                return(proxyConfig);
            }
Example #2
0
 /// <summary>
 /// Constructs a new proxy for an interface.
 /// </summary>
 /// <param name="serviceProvider"></param>
 /// <param name="proxyConfiguration"></param>
 /// <param name="proxyGenerator"></param>
 protected SolidProxy(IServiceProvider serviceProvider, ISolidProxyConfiguration <T> proxyConfiguration, ISolidProxyGenerator proxyGenerator)
 {
     ServiceProvider    = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     ProxyConfiguration = proxyConfiguration ?? throw new ArgumentNullException(nameof(proxyConfiguration));
     Proxy = proxyGenerator.CreateInterfaceProxy(this);
 }
Example #3
0
        /// <summary>
        /// Constructs a new instance
        /// </summary>
        /// <param name="methodConfiguration"></param>
        /// <param name="proxyConfiguration"></param>
        public SolidProxyInvocationConfiguration(ISolidMethodConfigurationBuilder methodConfiguration, ISolidProxyConfiguration <TObject> proxyConfiguration)
            : base(SolidScopeType.Method, methodConfiguration)
        {
            MethodConfiguration = methodConfiguration ?? throw new ArgumentNullException(nameof(methodConfiguration));
            ProxyConfiguration  = proxyConfiguration ?? throw new ArgumentNullException(nameof(proxyConfiguration));

            SetValue($"{typeof(ISolidProxyInvocationAdviceConfig).FullName}.InvocationConfiguration", this);
        }
Example #4
0
 /// <summary>
 /// Construrcts a proxy
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="serviceProvider"></param>
 /// <param name="config"></param>
 /// <returns></returns>
 public ISolidProxy <T> CreateSolidProxy <T>(IServiceProvider serviceProvider, ISolidProxyConfiguration <T> config) where T : class
 {
     return(new SolidProxyCastle <T>(serviceProvider, config, this));
 }
Example #5
0
 /// <summary>
 /// Constructs a new instance
 /// </summary>
 /// <param name="serviceProvider"></param>
 /// <param name="proxyConfiguration"></param>
 /// <param name="proxyGenerator"></param>
 public SolidProxyCastle(IServiceProvider serviceProvider, ISolidProxyConfiguration <T> proxyConfiguration, ISolidProxyGenerator proxyGenerator)
     : base(serviceProvider, proxyConfiguration, proxyGenerator)
 {
 }