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(); } }
//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); }