c#nullable double to actionscript NaN通过氟网关

时间:2010-08-19 14:42:09

标签: c# flex nullable nan fluorinefx

有没有办法在氟中迫使一个可以为空的双重传递到NaN? (反之亦然) 默认情况下,这些值作为null传递,但actionscript中的Number不可为空,因此默认情况下它将转换为0。

我需要服务器端可空双打在flex中为NaN,并且从flex到可以为空的NaN值在服务器端加倍。

有什么想法吗?

THX,

3 个答案:

答案 0 :(得分:1)

我不知道氟,但我想你可以传入:

  (myDouble ?? Double.NaN)

此表达式的类型为double,而不是double?,如果myDoublenull,则表达式为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)

看起来氟有一个配置部分,它定义了如何转换nullables。我还没有测试过它。

复制自 http://www.fluorinefx.com/docs/fluorine/nullable.html

n