Exemplo n.º 1
0
        private static IList DecodeCollection(PSObject psObject, Type collectionType)
        {
            Type      genericArgument = collectionType.GetGenericArguments()[0];
            ArrayList baseObject      = RemoteHostEncoder.SafelyGetBaseObject <ArrayList>(psObject);
            IList     instance        = (IList)Activator.CreateInstance(collectionType);

            foreach (object obj in baseObject)
            {
                instance.Add(RemoteHostEncoder.DecodeObject(obj, genericArgument));
            }
            return(instance);
        }
Exemplo n.º 2
0
        private static IDictionary DecodeDictionary(PSObject psObject, Type dictionaryType)
        {
            if (RemoteHostEncoder.IsObjectDictionaryType(dictionaryType))
            {
                return(RemoteHostEncoder.DecodeObjectDictionary(psObject, dictionaryType));
            }
            Type[]      genericArguments = dictionaryType.GetGenericArguments();
            Type        type1            = genericArguments[0];
            Type        type2            = genericArguments[1];
            Hashtable   baseObject       = RemoteHostEncoder.SafelyGetBaseObject <Hashtable>(psObject);
            IDictionary instance         = (IDictionary)Activator.CreateInstance(dictionaryType);

            foreach (object key in (IEnumerable)baseObject.Keys)
            {
                instance.Add(RemoteHostEncoder.DecodeObject(key, type1), RemoteHostEncoder.DecodeObject(baseObject[key], type2));
            }
            return(instance);
        }