// ctor. /// <summary> /// Конструктор клиента. /// </summary> /// <param name="controllersAssembly">Сборка в которой осуществляется поиск контроллеров.</param> /// <param name="serverAddress">Адрес сервера.</param> private VRpcClient(Assembly controllersAssembly, Uri serverAddress, bool allowAutoConnect) { Debug.Assert(controllersAssembly != Assembly.GetExecutingAssembly()); // Найти все контроллеры в вызывающей сборке. Dictionary <string, Type> controllerTypes = GlobalVars.FindAllControllers(controllersAssembly); // Словарь с методами контроллеров. _invokeActions = new InvokeActionsDictionary(controllerTypes); ServerAddress = serverAddress; _connectLock = new AsyncLock(); IsAutoConnectAllowed = allowAutoConnect; _proxyCache = new ProxyCache(); InnerConfigureIoC(controllerTypes.Values); }
// ctor. /// <summary> /// Принимает открытое соединение Web-Socket. /// </summary> internal ClientSideConnection(VRpcClient client, ClientWebSocket ws, ServiceProvider serviceProvider, InvokeActionsDictionary controllers) : base(ws.ManagedWebSocket, isServer: false, serviceProvider, controllers) { Client = client; }