我正在使用ServiceStack,发现了一些奇怪的东西。当WS Dto包含一些SELECT
date,
SUM( country = 'Belgium' ) AS Belgium,
SUM( country = 'Germany' ) AS Germany,
SUM( country = 'Italy' ) AS Italy
FROM t_stat
GROUP BY date
值时,我在FileNotFoundException
上得到了System.Numerics.Vectors
。例如,我有一个名为“ GetBookingSolutions”的Dto,它看起来像这样:
null
最后两个是字典,因此可以为空。如果发送客户端发送的JSON如下所示:
[Route(BookingWizard.BASE_PATH + "getbookingsolution", Verbs = "POST", Summary = "Sends booking spec to request server to create/plan the booking")]
public class GetBookingSolution : IReturn<GetBookingSolutionResponse>
{
public DateTime TimeWanted { get; set; }
public uint AddressFrom { get; set; }
// ...
public Dictionary<uint, int> Equipment { get; set; }
public Dictionary<uint, int> CoTravellers { get; set; }
}
然后我得到了异常,如下所示。服务实现永远不会执行,因此代码永远不会到达。相反,我在{
"TimeWanted": "2018-12-10T09:05:00.000Z",
"AddressFrom": 14427162,
"CoTravellers": null,
"Equipment": null
}
中得到了异常。
如果JSON看起来像这样:
UncaughtExceptionHandlers
或者如果填充了词典:
{
"TimeWanted": "2018-12-10T09:05:00.000Z",
"AddressFrom": 14427162,
}
然后不会出现错误。为什么会这样呢?这是一个错误还是建议?如果这些属性不是最终用户设置的,则{
"TimeWanted": "2018-12-10T09:05:00.000Z",
"AddressFrom": 14427162,
"CoTravellers": {
"13486513": 2,
"13486515": 1
},
"Equipment": {
"13424459": 2,
}
}
值适用于这些属性。
null
答案 0 :(得分:0)
这是一个运行时依赖关系问题,与DTO中的null无关,这正是触发代码路径的原因,该代码路径需要无法加载的 System.Numerics.Vectors 依赖关系。在这种情况下,请调用System.MemoryExtensions.Equals()
扩展方法。
似乎有一个few issues带有此异常,并且看来this GitHub Thread可以尝试一些解决方法。