public void Handle(IGluonSession session, RequestClientSession request) { //Respond asking for a gluon challenge session.Write(new RequestChallenge() { CallSign = session.CallSign, PublicHost = session.PublicHost, InternalHost = session.InternalHost }); }
/// <summary> /// 获取接口 /// </summary> /// <param name="fullName">接口的FullName</param> /// <param name="obj">返回的对象</param> /// <param name="execType">对象类型</param> /// <param name="session">连接对象</param> /// <param name="info">请求信息</param> /// <param name="requestInfo">基础请求信息</param> /// <param name="container">容器对象</param> /// <param name="requestClientSession">转发对象</param> /// <returns></returns> public bool GetService(string fullName, Session session, Info info, RequestInfo requestInfo, IUnityContainer container, Guid?requestClientSession, out Object obj, out Type execType) { if (ContainerObjList.TryGetValue(fullName, out var value)) { obj = unityContainer.Resolve(value.Item1); execType = value.Item2; if (value.Item3) { //表示可以注入某些属性 socketPropertyInfo.SetValue(obj, session); infoPropertyInfo.SetValue(obj, info); requestInfoPropertyInfo.SetValue(obj, requestInfo); containerPropertyInfo.SetValue(obj, container); RequestClientSession?.SetValue(obj, requestClientSession); } return(true); } obj = null; execType = null; return(false); }