Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元
关于bind问题
mashiro发起了问答2017-10-18
4
回复
442
浏览

//serivce
        injectionBinder.Bind<IScoreService>().To<ScoreService>().ToSingleton();//表示这个对象只会在整个工程中生成一个

为什么这样子绑定不可以 

injectionBinder.Bind<ScoreService>().To<IScoreService>().ToSingleton(); 这样。
 

然后inject 的话是注入物体吗 我debug的时候测试出来显示的是个游戏物体但是 我这里scoreservice 并没有放到场景中为什么也是显示一个object呢这个object 有什么特殊含义吗 。
我试了下不用inject  用new 但是这样子不行呢为什么呢  。

理解inject有和 bind顺序有点困难呢 求老师解析
看视频这几个点一直理解不出来呢 。


    [Inject]
    public IScoreService ScoreService { get; set; }

    public override void Execute()
    {
        Debug.Log(ScoreService);

       //这样子绑定调用的时候会出错injectionBinder.Bind<ScoreService>().To<IScoreService>().ToSingleton(); 
        ScoreService.RequestScore("Http://xxxx/xx/xxx");
       
    }

所有回复
  • siki 2017-10-18

       injectionBinder.Bind<IScoreService>().To<ScoreService>().ToSingleton();

    这个是人家的使用要求,使用人家的框架,得按照人家的框架要求来,你说的下面的写法可以自己去实现

    service框架会帮我们构造,随意我们不需要自己new,inject就是把框架构造的service对象赋值过来

    如果你自己new的话,那它没有被框架管理起来,里面访问什么东西的话都是空的,所以要使用框架给我们new的

    • mashiro 2017-10-19

      那老师这里的 框架这里的service 是要算本机上连接server的client 还是要先当 服务器上的service服务端去理解呢

      (0) 回复
    • mashiro 2017-10-19

      如果是按照服务端的话
      [Inject]
      public IScoreService scoreService { get; set; }

      public override void Execute()
      {
      Retain();//保留
      scoreService.dispatcher.AddListener(Demo1ServiceEvent.RequestScore,OnComplete);
      Debug.Log(scoreService);
      scoreService.RequestScore("Http://xxxx/xx/xxx");
      }

      这个scoreService.dispatcher.AddListener(Demo1ServiceEvent.RequestScore,OnComplete);
      应该是不能直接监听到远程主机上的方法并绑定吧

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-10-19

    这里的Service两者都不是,这个是专门给客户端服务的,用来处理跟服务器端的交互 请求数据,更新数据,保存数据等。 

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!