예제 #1
0
        public TypedMultipleValueType(ICollection values)
        {
            Type elementType = values.GetType().GetInterface("ICollection`1").GetGenericArguments()[0];

            leafType = JmxTypeMapping.GetJmxXmlType(elementType.AssemblyQualifiedName);
            List <GenericValueType> valueTypes = new List <GenericValueType>();

            foreach (object value in values)
            {
                valueTypes.Add(new GenericValueType(value));
            }
            Value = valueTypes.ToArray();
        }
예제 #2
0
        public TypedMapType(IDictionary value)
        {
            Type[] argumentTypes = value.GetType().GetInterface("IDictionary`2").GetGenericArguments();
            keyType   = JmxTypeMapping.GetJmxXmlType(argumentTypes[0].AssemblyQualifiedName);
            valueType = JmxTypeMapping.GetJmxXmlType(argumentTypes[1].AssemblyQualifiedName);

            List <MapTypeEntry> mapTypeEntries = new List <MapTypeEntry>();

            foreach (DictionaryEntry entry in value)
            {
                mapTypeEntries.Add(new MapTypeEntry
                {
                    Key   = new GenericValueType(entry.Key),
                    Value = new GenericValueType(entry.Value)
                });
            }
            Entry = mapTypeEntries.ToArray();
        }