public override object BuildProxy(ProxyGenerator generator, Type objType, CommonData data, object baseObj)
        {
            if (!objType.IsInterface)
            {
                throw new Exception("Set can only be created from ISet Interface");
            }

            object proxy;

            if (baseObj == null)
            {
                proxy = generator.CreateInterfaceProxyWithoutTarget(objType,
                    new ProxyGenerationOptions(new GeneralProxyGenerationHook())
                    {
                        Selector = _setSelector
                    },
                    new GeneralGetInterceptor(data), new SetAddInterceptor(data), new SetRemoveInterceptor(data));
            }
            else
            {
                proxy = generator.CreateInterfaceProxyWithTarget(objType, baseObj,
                    new ProxyGenerationOptions(new GeneralProxyGenerationHook())
                    {
                        Selector = _setSelector
                    },
                    new GeneralGetInterceptor(data), new SetAddInterceptor(data), new SetRemoveInterceptor(data));
            }
            return proxy;
        }
        public override object BuildProxy(ProxyGenerator generator, Type objType, CommonData data, object baseObj)
        {
            object proxy;
            if (baseObj == null)
            {
                proxy = generator.CreateClassProxyWithTarget(objType,
                    new ProxyGenerationOptions(new GeneralProxyGenerationHook())
                    {
                        Selector = _redisObjectSelector
                    },
                    new GeneralGetInterceptor(data), new RedisObjectSetInterceptor(data));
            }
            else
            {
                proxy = generator.CreateClassProxyWithTarget(objType, baseObj,
                    new ProxyGenerationOptions(new GeneralProxyGenerationHook())
                    {
                        Selector = _redisObjectSelector
                    },
                    new GeneralGetInterceptor(data), new RedisObjectSetInterceptor(data));
            }

            return proxy;
        }
 public GeneralGetInterceptor(CommonData commonData)
 {
     _commonData = commonData;
 }
 public abstract object BuildProxy(ProxyGenerator generator, Type objType, CommonData data, object baseObj);