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);