public ServiceHelper(IServerCaller serverCaller, IEnumerable <Assembly> assemblies) { Type serviceInterfaceType = typeof(IService); Type[] serviceInterfaces = assemblies.SelectMany(x => x.GetTypes()) .Where(type => serviceInterfaceType.IsAssignableFrom(type) && type.IsInterface && (type != serviceInterfaceType)) .ToArray(); var proxyGenerator = new ProxyGenerator(); var serviceInterceptor = new ServiceInterceptor(serverCaller); foreach (Type serviceInterface in serviceInterfaces) { object serviceProxy = proxyGenerator.CreateInterfaceProxyWithoutTarget(serviceInterface, serviceInterceptor); _serviceProxies.Add(serviceInterface, serviceProxy); } }
public ServiceInterceptor(IServerCaller serverCaller) { _serverCaller = serverCaller; }
public ServiceHelper(IServerCaller serverCaller) : this(serverCaller, new[] { Assembly.GetExecutingAssembly() }) { }