Ejemplo n.º 1
0
 public override int ToInt32()
 {
     if (_dataType == ODataType.Unknown)
     {
         if (_type.Equals(typeof(bool)))
         {
             _dataType = ODataType.Boolean;
         }
         else if (_type.Equals(typeof(char)))
         {
             _dataType = ODataType.Char;
         }
         else if (_type.Equals(typeof(byte)))
         {
             _dataType = ODataType.Byte;
         }
         else if (_type.Equals(typeof(sbyte)))
         {
             _dataType = ODataType.Short;
         }
         else if (_type.Equals(typeof(short)))
         {
             _dataType = ODataType.Short;
         }
         else if (_type.Equals(typeof(ushort)))
         {
             _dataType = ODataType.Integer;
         }
         else if (_type.Equals(typeof(int)))
         {
             _dataType = ODataType.Integer;
         }
         else if (_type.Equals(typeof(uint)))
         {
             _dataType = ODataType.Long;
         }
         else if (_type.Equals(typeof(long)))
         {
             _dataType = ODataType.Long;
         }
         else if (_type.Equals(typeof(ulong)))
         {
             _dataType = ODataType.Long;
         }
         else if (_type.Equals(typeof(float)))
         {
             _dataType = ODataType.Float;
         }
         else if (_type.Equals(typeof(double)))
         {
             _dataType = ODataType.Double;
         }
         else if (_type.Equals(typeof(decimal)))
         {
             _dataType = ODataType.Decimal;
         }
         else if (_type.Equals(typeof(string)))
         {
             _dataType = ODataType.String;
         }
         else if (_type.Equals(typeof(DateTime)))
         {
             _dataType = ODataType.DateTime;
         }
         else if (_type.Implements(typeof(IIdentifiable)))
         {
             _dataType = ODataType.Link;
         }
         else if (_type.IsEnum)
         {
             _dataType = ODataType.Integer;
         }
         else if (_type.IsArray)
         {
             if (_type.GetElementType().IsValueType || _type.GetElementType() == typeof(string))
             {
                 _dataType = ODataType.Binary;
             }
             else if (_type.GetElementType().Implements(typeof(IIdentifiable)))
             {
                 _dataType = ODataType.LinkSet;
             }
         }
         else if (_type.Implements(typeof(IEnumerable<>)))
         {
             var elementType = _type.GetGenericArguments()[0];
             if (elementType.IsValueType || elementType == typeof(string))
             {
                 _dataType = ODataType.Binary;
             }
             else if (elementType.Implements(typeof(IIdentifiable)))
             {
                 _dataType = ODataType.LinkSet;
             }
         }
     }
     return (int)_dataType;
 }
Ejemplo n.º 2
0
 public OStorageType(ODataType dataType)
 {
     ToInt32();
     _dataType = dataType;
 }