protected virtual void SetupTest()
        {
            _reg = new Registry <IModel>();
            _reg.Bind <Service.ICardTemplateService, Service.Impl.CardTemplateService>(new Service.Impl.CardTemplateService());
            _reg.Bind <IBoardModel, BoardModel>(new BoardModel(8, 8));
            _reg.Bind <IArbiterModel, ArbiterModel>(new ArbiterModel());
            _reg.Bind <IWhitePlayerModel, WhitePlayerModel>();
            _reg.Bind <IBlackPlayerModel, BlackPlayerModel>();
            _reg.Bind <ICardModel, CardModel>();
            _reg.Bind <IDeckModel, MockDeck>();
            _reg.Bind <IHandModel, MockHand>();
            _reg.Bind <IPieceModel, PieceModel>();
            _reg.Bind <IEndTurnButtonModel, EndTurnButtonModel>();
            _reg.Resolve();

            _board   = _reg.Get <IBoardModel>();
            _arbiter = _reg.Get <IArbiterModel>();
            _white   = _reg.Get <IWhitePlayerModel>();
            _black   = _reg.Get <IBlackPlayerModel>();

            foreach (var model in _reg.Instances.ToList())
            {
                model.PrepareModels();
            }
        }
Exemple #2
0
        //private IDictionary<String, IApiClient> _services = new Dictionary<String, IApiClient>();
        /// <summary>为指定服务创建客户端,从星尘注册中心获取服务地址。单例,应避免频繁创建客户端</summary>
        /// <param name="serviceName"></param>
        /// <param name="tag"></param>
        /// <returns></returns>
        public IApiClient CreateForService(String serviceName, String tag = null)
        {
            //if (_services.TryGetValue(serviceName, out var client)) return client;

            var http = new ApiHttpClient
            {
                RoundRobin = true,

                Tracer = Tracer,
            };

            var models = Service.ResolveAsync(serviceName, null, tag).Result;

            Bind(http, models);

            Service.Bind(serviceName, (k, ms) => Bind(http, ms));

            //_services[serviceName] = http;

            return(http);
        }