Exemplo n.º 1
0
        public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
        {
            if (value == null)
            {
                return(null);
            }
            Type elementType = GetElementType(plainNetType);

            if (mappedType.Kind == OpenTypeKind.ArrayType)
            {
                if (value.GetType().IsArray)
                {
                    return(value);
                }
                else
                {
                    ArrayList   result          = new ArrayList();
                    IEnumerable enumerableValue = (IEnumerable)value;
                    foreach (object o in enumerableValue)
                    {
                        result.Add(o);
                    }
                    return(result.ToArray(elementType));
                }
            }
            else
            {
                TabularType  tabularType     = (TabularType)mappedType;
                ITabularData result          = new TabularDataSupport(tabularType, 0);
                IEnumerable  enumerableValue = (IEnumerable)value;
                int          index           = 0;
                foreach (object o in enumerableValue)
                {
                    ICompositeData element = (ICompositeData)mapNestedValueCallback(elementType, MakeElementType(tabularType.RowType), o);
                    result.Put(MakeRowValue(element, index, tabularType.RowType));
                    index++;
                }
                return(result);
            }
        }
Exemplo n.º 2
0
 public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
 {
     if (value == null)
      {
     return null;
      }
      Type elementType = GetElementType(plainNetType);
      if (mappedType.Kind == OpenTypeKind.ArrayType)
      {
     if (value.GetType().IsArray)
     {
        return value;
     }
     else
     {
        ArrayList result = new ArrayList();
        IEnumerable enumerableValue = (IEnumerable)value;
        foreach (object o in enumerableValue)
        {
           result.Add(o);
        }
        return result.ToArray(elementType);
     }
      }
      else
      {
     TabularType tabularType = (TabularType) mappedType;
     ITabularData result = new TabularDataSupport(tabularType, 0);
     IEnumerable enumerableValue = (IEnumerable) value;
     int index = 0;
     foreach (object o in enumerableValue)
     {
        ICompositeData element = (ICompositeData) mapNestedValueCallback(elementType, MakeElementType(tabularType.RowType), o);
        result.Put(MakeRowValue(element, index, tabularType.RowType));
        index++;
     }
     return result;
      }
 }
Exemplo n.º 3
0
        public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
        {
            if (value == null)
             {
            return null;
             }

             CompositeType compositeType = (CompositeType)mappedType;
             Type valueType = value.GetType();

             List<string> names = new List<string>();
             List<object> values = new List<object>();

             foreach (string itemName in compositeType.KeySet)
             {
            PropertyInfo propertyInfo = valueType.GetProperty(itemName, BindingFlags.Public | BindingFlags.Instance);
            object propValue = propertyInfo.GetValue(value, new object[] {});
            OpenType mappedPropertyType = compositeType.GetOpenType(itemName);
            values.Add(mapNestedValueCallback(propertyInfo.PropertyType, mappedPropertyType, propValue));
            names.Add(itemName);
             }
             return new CompositeDataSupport(compositeType, names, values);
        }
Exemplo n.º 4
0
        public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
        {
            if (value == null)
            {
                return(null);
            }

            CompositeType compositeType = (CompositeType)mappedType;
            Type          valueType     = value.GetType();

            List <string> names  = new List <string>();
            List <object> values = new List <object>();

            foreach (string itemName in compositeType.KeySet)
            {
                PropertyInfo propertyInfo       = valueType.GetProperty(itemName, BindingFlags.Public | BindingFlags.Instance);
                object       propValue          = propertyInfo.GetValue(value, new object[] {});
                OpenType     mappedPropertyType = compositeType.GetOpenType(itemName);
                values.Add(mapNestedValueCallback(propertyInfo.PropertyType, mappedPropertyType, propValue));
                names.Add(itemName);
            }
            return(new CompositeDataSupport(compositeType, names, values));
        }
Exemplo n.º 5
0
 public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
 {
     return(string.Format(CultureInfo.InvariantCulture, "{0} ({1})", value, Convert.ToUInt32(value)));
 }
Exemplo n.º 6
0
 public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
 {
     return value;
 }
Exemplo n.º 7
0
 public object MapValue(Type plainNetType, OpenType mappedType, object value, MapValueDelegate mapNestedValueCallback)
 {
     return(value);
 }