List<AgvLoginModel> request = List<AgvLoginModel>(requestInfo.Body);
??? 你的 new
呢
强制类型转换也得加小括号吧??
List<AgvLoginModel> request =new List<AgvLoginModel>(Convert.ToInt32(requestInfo.Body)); 是这样么?
@在来六石: 强制转换是
List<AgvLoginModel> request = (List<AgvLoginModel>)requestInfo.Body;
如果 requestInfo.Body
实现了IEnumerable
接口, 也可以写
var request = requestInfo.Body.ToList();
@拓拓:
下面有出现这样得错误
@在来六石: 你的requestInfo.Body
是IEnumerable<byte>
类型,看起来是一种二进制协议
如果要转换成List<AgvLoginModel>
类型,需要反序列化或者其他的解析方法,重新构造AgvLoginModel
类
@拓拓: 求大神指导
@在来六石: 这还怎么指导,你这是服务端对吧,你跟客户端是怎么协商的,换句话说,这一串byte
到底是什么东西,只有你们知道,如果你不知道,你去问知道的人
@拓拓: 好的 明白
没看懂这个问题
public override void ExecuteCommand(AgvSession session, SpecialHeaderRequestInfo requestInfo)
{
List<AgvLoginModel> request = List<AgvLoginModel>(requestInfo.Body);
//var request = JsonHelp.Deserialize<AgvLoginModel>(requestInfo.Body);
var manager = BusinessManager.Instance
.Resolve<EquipmentManage>((int)EnumManageType.EquipmentManage);
BaseEquipment equipment;
if (manager.AgvTryLogin(request, out equipment))
{
session.Register(equipment);
ConsoleHelp.Info(Name, request, "OK");
}
else
{
ConsoleHelp.Error(Name, request, "Failed");
}
}
@在来六石: List<AgvLoginModel> request = List<AgvLoginModel>(requestInfo.Body);
然后是这个代码没用?缺少引用System.Collections.Generic这个?
@华临天下: 引用也没用
@在来六石:
上面是不是这个反序列化写的有问题啊
var request = JsonHelp.Deserialize<List<AgvLoginModel>(>(requestInfo.Body);
@华临天下:不是 我是想让它转换为List<AgvLoginModel> request
可是List<AgvLoginModel>(requestInfo.Body);
这个转换不过来 转不成list类型得
@在来六石: JsonHelp是不是有问题啊,试试Newtonsoft这个
@华临天下: 现在不使用JsonHeip自己转