示例#1
0
 public GenericValueType(object value)
 {
     if (value == null)
     {
         Item            = new NullType();
         ItemElementName = ItemChoiceType.Null;
     }
     else
     {
         Type valueType = value.GetType();
         if (valueType == typeof(byte[]))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Base64Binary;
         }
         else if (valueType == typeof(bool))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Boolean;
         }
         else if (valueType == typeof(sbyte))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Byte;
         }
         else if (valueType == typeof(ushort))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Character;
         }
         else if (valueType == typeof(DateTime))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.DateTime;
         }
         else if (valueType == typeof(float))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Float;
         }
         else if (valueType == typeof(decimal))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Decimal;
         }
         else if (valueType == typeof(double))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Double;
         }
         else if (valueType == typeof(int))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Int;
         }
         else if (valueType == typeof(long))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Long;
         }
         else if (valueType == typeof(short))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.Short;
         }
         else if (valueType == typeof(string))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.String;
         }
         else if (valueType == typeof(Uri))
         {
             Item            = value.ToString();
             ItemElementName = ItemChoiceType.URI;
         }
         else if (valueType == typeof(Guid))
         {
             Item            = value.ToString();
             ItemElementName = ItemChoiceType.UUID;
         }
         else if (valueType == typeof(TimeSpan))
         {
             Item            = value.ToString();
             ItemElementName = ItemChoiceType.Duration;
         }
         else if (valueType.GetInterface("IDictionary`2") != null)
         {
             Item            = new TypedMapType((IDictionary)value);
             ItemElementName = ItemChoiceType.TypedMap;
         }
         else if (typeof(IDictionary).IsAssignableFrom(valueType))
         {
             Item            = new MapType((IDictionary)value);
             ItemElementName = ItemChoiceType.Map;
         }
         else if (valueType.GetInterface("ICollection`1") != null)
         {
             Item            = new TypedMultipleValueType((ICollection)value);
             ItemElementName = ItemChoiceType.TypedList;
         }
         else if (typeof(ICollection).IsAssignableFrom(valueType))
         {
             Item            = new MultipleValueType((ICollection)value);
             ItemElementName = ItemChoiceType.List;
         }
         else if (valueType == typeof(XmlQualifiedName))
         {
             Item            = value;
             ItemElementName = ItemChoiceType.QName;
         }
         else if (valueType == typeof(ObjectName))
         {
             Item            = ObjectNameSelector.CreateEndpointAddress((ObjectName)value);
             ItemElementName = ItemChoiceType.EndpointReference;
         }
         else if (valueType == typeof(RoleInfo))
         {
             Item            = new ManagedResourceRoleInfo((RoleInfo)value);
             ItemElementName = ItemChoiceType.ManagedResourceRoleInfo;
         }
         else if (valueType == typeof(RoleResult))
         {
             Item            = new ManagedResourceRoleResult((RoleResult)value);
             ItemElementName = ItemChoiceType.ManagedResourceRoleResult;
         }
         else if (typeof(ITabularData).IsAssignableFrom(valueType))
         {
             Item            = new TabularDataValueType((ITabularData)value);
             ItemElementName = ItemChoiceType.TabularDataValue;
         }
         else if (typeof(ICompositeData).IsAssignableFrom(valueType))
         {
             Item            = new CompositeDataValueType((ICompositeData)value);
             ItemElementName = ItemChoiceType.CompositeDataValue;
         }
         else if (typeof(OpenType).IsAssignableFrom(valueType))
         {
             Item = OpenDataType_Type.Serialize(value, out itemElementNameField);
         }
         else
         {
             throw new NotSupportedException("Not supported type in serialization: " + valueType);
         }
     }
 }
示例#2
0
 public GenericValueType(object value)
 {
     if (value == null)
      {
     Item = new NullType();
     ItemElementName = ItemChoiceType.Null;
      }
      else
      {
     Type valueType = value.GetType();
     if (valueType == typeof(byte[]))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Base64Binary;
     }
     else if (valueType == typeof(bool))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Boolean;
     }
     else if (valueType == typeof(sbyte))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Byte;
     }
     else if (valueType == typeof(ushort))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Character;
     }
     else if (valueType == typeof(DateTime))
     {
        Item = value;
        ItemElementName = ItemChoiceType.DateTime;
     }
     else if (valueType == typeof(float))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Float;
     }
     else if (valueType == typeof(decimal))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Decimal;
     }
     else if (valueType == typeof(double))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Double;
     }
     else if (valueType == typeof(int))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Int;
     }
     else if (valueType == typeof(long))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Long;
     }
     else if (valueType == typeof(short))
     {
        Item = value;
        ItemElementName = ItemChoiceType.Short;
     }
     else if (valueType == typeof(string))
     {
        Item = value;
        ItemElementName = ItemChoiceType.String;
     }
     else if (valueType == typeof(Uri))
     {
        Item = value.ToString();
        ItemElementName = ItemChoiceType.URI;
     }
     else if (valueType == typeof(Guid))
     {
        Item = value.ToString();
        ItemElementName = ItemChoiceType.UUID;
     }
     else if (valueType == typeof(TimeSpan))
     {
        Item = value.ToString();
        ItemElementName = ItemChoiceType.Duration;
     }
     else if (valueType.GetInterface("IDictionary`2") != null)
     {
        Item = new TypedMapType((IDictionary)value);
        ItemElementName = ItemChoiceType.TypedMap;
     }
     else if (typeof(IDictionary).IsAssignableFrom(valueType))
     {
        Item = new MapType((IDictionary)value);
        ItemElementName = ItemChoiceType.Map;
     }
     else if (valueType.GetInterface("ICollection`1") != null)
     {
        Item = new TypedMultipleValueType((ICollection)value);
        ItemElementName = ItemChoiceType.TypedList;
     }
     else if (typeof(ICollection).IsAssignableFrom(valueType))
     {
        Item = new MultipleValueType((ICollection)value);
        ItemElementName = ItemChoiceType.List;
     }
     else if (valueType == typeof(XmlQualifiedName))
     {
        Item = value;
        ItemElementName = ItemChoiceType.QName;
     }
     else if (valueType == typeof(ObjectName))
     {
        Item = ObjectNameSelector.CreateEndpointAddress((ObjectName)value);
        ItemElementName = ItemChoiceType.EndpointReference;
     }
     else if (valueType == typeof(RoleInfo))
     {
        Item = new ManagedResourceRoleInfo((RoleInfo) value);
        ItemElementName = ItemChoiceType.ManagedResourceRoleInfo;
     }
     else if (valueType == typeof(RoleResult))
     {
        Item = new ManagedResourceRoleResult((RoleResult) value);
        ItemElementName = ItemChoiceType.ManagedResourceRoleResult;
     }
     else if (typeof(ITabularData).IsAssignableFrom(valueType))
     {
        Item = new TabularDataValueType((ITabularData)value);
        ItemElementName = ItemChoiceType.TabularDataValue;
     }
     else if (typeof(ICompositeData).IsAssignableFrom(valueType))
     {
        Item = new CompositeDataValueType((ICompositeData)value);
        ItemElementName = ItemChoiceType.CompositeDataValue;
     }
     else if (typeof(OpenType).IsAssignableFrom(valueType))
     {
        Item = OpenDataType_Type.Serialize(value, out itemElementNameField);
     }
     else throw new NotSupportedException("Not supported type in serialization: "+valueType);
      }
 }