예제 #1
0
        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;
 }
예제 #3
0
 public ServiceHelper(IServerCaller serverCaller)
     : this(serverCaller, new[] { Assembly.GetExecutingAssembly() })
 {
 }