在 运行 时间内将数组动态添加到资源
dynamically adding an array to a resource in run time
我有一个自定义 ODataResourceSerializer
,它在某些情况下可以向资源添加新属性,效果非常好。
我正在尝试添加一个新的简单 int[] 属性
该资源是在运行时注册的动态资源,在模型上没有这些属性。
此代码
case TypeX tx:
propertiesToReturn.Add(new ODataProperty()
{
Name = "TypeX",
Value = new ODataCollectionValue()
{
Items = new int[] {1,2,3}
}
});
给我 whrn 资源发送到 ODataJsonLightPropertySerializer.WriteCollectionProperty
A type named 'System.Int32[]' could not be resolved by the model. When a model is available, each type name must resolve to a valid type.
并且在尝试将值直接添加到 odata 时 属性
new ODataProperty()
{
Value = new int[] { 1, 2, 3 }
}
我继续添加
An ODataPrimitiveValue was instantiated with a value of type 'System.Int32[]'. ODataPrimitiveValue can only wrap values which can be represented as primitive EDM types
我尝试将 int[] 添加到模型构建器
我尝试将类型添加到 ODataCollectionValue
使用 ODataUntypedValue
解决并根据 return 类型序列化值 "XML/JSON"
例如
Value = new ODataUntypedValue
{
RawValue = JsonConvert.SerializeObject(new int[] { 1, 2, 3 })
}
我有一个自定义 ODataResourceSerializer
,它在某些情况下可以向资源添加新属性,效果非常好。
我正在尝试添加一个新的简单 int[] 属性
该资源是在运行时注册的动态资源,在模型上没有这些属性。
此代码
case TypeX tx:
propertiesToReturn.Add(new ODataProperty()
{
Name = "TypeX",
Value = new ODataCollectionValue()
{
Items = new int[] {1,2,3}
}
});
给我 whrn 资源发送到 ODataJsonLightPropertySerializer.WriteCollectionProperty
A type named 'System.Int32[]' could not be resolved by the model. When a model is available, each type name must resolve to a valid type.
并且在尝试将值直接添加到 odata 时 属性
new ODataProperty()
{
Value = new int[] { 1, 2, 3 }
}
我继续添加
An ODataPrimitiveValue was instantiated with a value of type 'System.Int32[]'. ODataPrimitiveValue can only wrap values which can be represented as primitive EDM types
我尝试将 int[] 添加到模型构建器 我尝试将类型添加到 ODataCollectionValue
使用 ODataUntypedValue
解决并根据 return 类型序列化值 "XML/JSON"
例如
Value = new ODataUntypedValue
{
RawValue = JsonConvert.SerializeObject(new int[] { 1, 2, 3 })
}