有没有办法在氟中迫使一个可以为空的双重传递到NaN? (反之亦然) 默认情况下,这些值作为null传递,但actionscript中的Number不可为空,因此默认情况下它将转换为0。
我需要服务器端可空双打在flex中为NaN,并且从flex到可以为空的NaN值在服务器端加倍。
有什么想法吗?
THX,
答案 0 :(得分:1)
我不知道氟,但我想你可以传入:
(myDouble ?? Double.NaN)
此表达式的类型为double
,而不是double?
,如果myDouble
为null
,则表达式为NaN。
答案 1 :(得分:0)
我们遇到了同样的问题。我们的解决方案是修改Fluorine代码来编写对象。
在文件AMFWriter
中,行1367
,在调用WriteAMF3Data(memberValue)
之前,我添加了以下代码:
//Mapping null double?s to NaN when writing data.
if (memberValue == null)
{
System.Reflection.PropertyInfo p = type.GetProperty(classMember.Name);
if (p != null)
{
Type t = p.PropertyType; // t will be System.String
if (t.IsEquivalentTo(typeof(Nullable<Double>)))
memberValue = Double.NaN;
}
}
到目前为止似乎有效。但是,我通常不用.NET编写代码,所以可能有更好的方法来实现这一点。
答案 2 :(得分:0)