【发布时间】:2019-09-03 09:40:33
【问题描述】:
我有一个自定义的ODataResourceSerializer,它在某些情况下会为资源添加新属性,效果很好。
我正在尝试添加一个新的简单 int[] 属性
资源是在运行时注册的动态资源,在模型上没有这些属性。
这段代码
case TypeX tx:
propertiesToReturn.Add(new ODataProperty()
{
Name = "TypeX",
Value = new ODataCollectionValue()
{
Items = new int[] {1,2,3}
}
});
当资源被发送到ODataJsonLightPropertySerializer.WriteCollectionProperty时告诉我
模型无法解析名为“System.Int32[]”的类型。当模型可用时,每个类型名称都必须解析为有效类型。
当尝试将值直接添加到 odata 属性时
new ODataProperty()
{
Value = new int[] { 1, 2, 3 }
}
我继续添加
使用“System.Int32[]”类型的值实例化了 ODataPrimitiveValue。 ODataPrimitiveValue 只能包装可以表示为原始 EDM 类型的值
我尝试将 int[] 添加到模型构建器 我尝试向 ODataCollectionValue 添加一个类型
【问题讨论】: