Пример #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 CompositeDataField(string name, string description, OpenDataType_Type type)
 {
     Name = name;
      Description = description;
      Type = type;
 }
Пример #3
0
 public CompositeDataField(string name, string description, OpenDataType_Type type)
 {
     Name        = name;
     Description = description;
     Type        = type;
 }