c # обнуляемый double для actioncript NaN через фторсодержащие - PullRequest
1 голос
/ 19 августа 2010

Есть ли у фтора способ заставить сдаваемый двойник быть согнутым как NaN?(и наоборот) По умолчанию эти значения передаются как нулевые, но число в ActionScript не обнуляется, поэтому по умолчанию оно конвертируется в 0.и значения NaN от flex для обнуляемости удваиваются на стороне сервера.

Есть мысли?

Thx,

Ответы [ 3 ]

1 голос
/ 19 августа 2010

Я не знаю, фтор, но я думаю, что вы могли бы пройти:

  (myDouble ?? Double.NaN)

Это выражение имеет тип double, а не double?, и оно будет равно NaN, если myDouble было null.

0 голосов
/ 28 октября 2016

Похоже, что у фтора есть раздел конфигурации, который определяет, как конвертируются nullables.Я еще не проверял.

Скопировано из http://www.fluorinefx.com/docs/fluorine/nullable.html

FluorineFx.NET  
Null values
The <nullable> configuration section allows the use of special value of the given value type as the null value. 

Use this solution only when you can identify a value which is unused.

<nullable>
    <type name="System.Int32" assembly="MinValue"/>
    <type name="System.Double" assembly="MinValue"/>
    <type name="System.DateTime" assembly="MinValue"/>
    <type name="System.Guid" assembly="Empty"/>
</nullable>

The name attribute is the fully qualified type name, the value attribute is a static member of the type (such as "MinValue") or a parseable value (0 for System.Int32 for example).

The acceptNullValueTypes option
Fluorine will accept null values sent from client for value-types if configured accordingly

    <acceptNullValueTypes>false</acceptNullValueTypes>

If acceptNullValueTypes = true (the default is false if not specified) any value-type that is not explicitly initialized with a value will contain the default value for that object type (0 for numeric types, false for Boolean, DateTime.Min for DateTime)
0 голосов
/ 26 января 2013

У нас просто была такая же проблема. Нашим решением было модифицировать код 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, так что, возможно, есть лучший способ сделать это.

...